D3DX9_24.dll

Started by
37 comments, last by wazoo69 18 years, 12 months ago
Quote:Original post by Evil Steve
Quote:Original post by Trip99
What has happpened in effect is that Microsoft have release DirectX 9.0d but not admitted to/realised it :) By moving D3DX into a .dll they have made the runtime required for the latest SDK different from Directx 9.0c. I can understand why they have done it but all they have to do to fix it is to allow us to distribute just the dll.
Or just release "DX 9.0d" [smile]
Even if all it includes is a few versions of the D3DX DLL, users will still download and install it if Windows Update says it's needed. Of course I understand that there's a lot of users who won't, but at least this way you can blame the user. As it is, the user just turns around and says "Oh, but I already have the latest DirectX version, so it must be your program".
Hopefully all this will be sorted soon though.


Good points all..

Yeah I'm crossing my fingers that they'll have something either proposed or in place for the June release.

Is this a ploy to "coherce" developers over to .NET I wonder?

ie. Since you HAVE to download the latest distributable to have the proper D3DX DLL, then you're getting the managed runtimes "for free"....a 2-for-1 combo!

Evil Steve, I hear what you're saying, but if you're gonna start blaming the user for not being able to run your software, then you might as well work for free. ;)

Diplomacy is paramount here to keeping up to date with MS, while at the same time placating your customer base.

Or you chuck in the towel and stick with DX8.1...;o
Learn about game programming!Games Programming in C++: Start to Finish
Advertisement
Quote:Original post by wazoo69
Is this a ploy to "coherce" developers over to .NET I wonder?
Nah. They're too busy coercing people over to MSVS.NET and Windows XP as a development platform. [rolleyes]

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

This is terrible, this is almost a reason for me to give openGl its first (in my opinion) point against DX, in the past few versions.


Can one not link to an older d3dx9.lib while still compiling with the newest version directx? just replace the new lib with the old?

Is there anyway to communicate this problem with microsoft?

[Edited by - Halsafar on April 27, 2005 3:54:34 PM]
Quote:Original post by Halsafar
This is terrible, this is almost a reason for me to give openGl its first (in my opinion) point against DX, in the past few versions.


Can one not link to an older d3dx9.lib while still compiling with the newest version directx? just replace the new lib with the old?

Is there anyway to communicate this problem with microsoft?


You could try, but nothing will change here for the D3DX DLL. It's been mandated from on high. Their address is posted on the DX website.

And AFAIK you won't be able to reference an older version of the lib with the newer SDK. You'll need to get your hands on an older DX9.0 SDK to hang onto the static library.

Yup I've heard of this entity called "OpenGL". *grin*

Learn about game programming!Games Programming in C++: Start to Finish
Quote:Original post by Halsafar
This is terrible, this is almost a reason for me to give openGl its first (in my opinion) point against DX, in the past few versions.

Yeah, its a PITA, but wouldn't go so far as "terrible". They are working on a solution to this so give them a bit of time [smile]

It's always struck me as a managerial/corporate policy decision rather than a down-in-the-trenches idea.

Quote:Original post by Halsafar
Can one not link to an older d3dx9.lib while still compiling with the newest version directx? just replace the new lib with the old?

Stick with the december release of the SDK, it's what me and many other people are doing. If you want the latest-and-greatest features then you're gonna have to bite the bullet.

Quote:Original post by Halsafar
Is there anyway to communicate this problem with microsoft?

As mentioned above, they do know that developers are a bit irritated by it all (hence we know they're working on a solution). You could always email directx@microsoft.com if you have any particular comments. Alternatively read the archives of the DIRECTXDEV mailing list or the DirectX newsgroupds.

hth
Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

I may have to stick with the December release, depending on the severity of the problem for me at this point. Currently I haven't developed anything in Dx9 since I just switched to it from Dx7 (new comp finally), so in that case it really means no difference to me which release I use.

When I do release any projects in DX9 I will probably just use the newest version of the SDK and hope everyone else out there has upgraded. At the same time I'll provide a compile from the december release for those who encounter this problem. Shouldn't that really simplify everything for now?

As for MS fixing this, and it being a corporate idea rather than 'in the trenches'. I will send MS a tasteful e-mail, voice my opinion like I'm sure many have, it will do nothing. It most likely was a corporate decision probably aimed at putting a strong grip on the game developing employment. All they have to do is become like most console systems, where to legally release games for a console you must be a registered developer for that system. MS is forcing us to distro the whole Dx9 package, next step will be making us have to be part of a registered company to be able to distro the package. Since windows is on 95% of PC's, DX is used by 'almost' all AAA games released today on the PC, they do not have to worry about pissing off any programmer who isn't part of a company since we will be forced into anyway.

Maybe they won't let people develop with DX NEXT unless they devote love to their XBox. hehe :)
Quote:Original post by Cambo_frog
...so you are probably one of the first find this problem.


Not at all, it is a common problem. It was a bad call to begin with and now we have to live with it. Hopefully they admit their wrongdoings and remove the versionname idea entirely. Better to have the developers patch their software instead. It have only been a few months so the damage is still controllable.
No no no no! :)
Quote:Original post by MichaelT
Not at all, it is a common problem. It was a bad call to begin with and now we have to live with it. Hopefully they admit their wrongdoings and remove the versionname idea entirely. Better to have the developers patch their software instead. It have only been a few months so the damage is still controllable.


The solution we ended up with for d3dx is the result of some very real issues. For example, Microsoft would like to continually improve the HLSL compiler and other technologies in d3dx (and, in general, most want us to do that too). Some developers who use d3dx must ship on Windows 9x platforms. Most developers who use d3dx are not willing to accept the regression risk that updating shared dlls ex-post-testo causes. Relying on developers to "patch their software" is not always an option -- some developers (or publishers) no longer even exist -- so Microsoft has to try and have solutions whereby we can service our code that applications depend on.

Walking backwards through the above factors, we need a DLL in order to be able to service d3dx effectively. Allowing applications to ship that DLL in their application directory means extremely costly servicing (gdiplus has taught us that). Regression risk means that each release of the shared DLL must be side-by-side in some manner. Windows 9x (and 2k) do not support the Fusion Side-by-Side DLL infrastructure (SxS DLLs) so we have to do some sort of versioning-in-the-filename system.

This isn't a large conspiracy or some wierd power play. It costs us to service things. The monetary aspect is one part but also, our team loses time if we ever have to patch difficult-to-service components. That is time that is better spent on helping developers for our platform in other ways. So poor servicability costs Microsoft and our developers (in different ways). We elected to try and be prepared to service our components if the need arises.

D3DX is in relatively wide use by applications running on a number of Microsoft's platforms and its servicing story required a unique solution. D3DX has also grown from humble beginnings into a pretty large set of APIs and technology in one DLL. We've taken what we've learned through this episode and applied it in numerous ways to future APIs and components. The ability to drop 9x and 2k support (at some point in the future) frees us up tremendously. Ideally, our ability to service components developers depend on would not affect their ability to develop. We're working toward that.

As always though, everyone's comments are welcome, we are listening and trying to improve the situation.

Thanks,
Paul Bleisch
WGGT Solutions
Quote:Original post by paulble
The solution we ended up with...


Your input is greatly appreciated but you misunderstood what I meant by patching.

If you get back to either calling a single dll (which have the versions hidden inside it) and/or providing a static lib (which I'd very much prefer) this whole issue may be patched away by companies that created software between februaury and now. If any companies went belly up during this period then it's too bad but I really see this as the best way out.

I really don't see how having an ever growing number of dlls doing the same thing, but named differently, is going to help anything at all.


[Edited by - MichaelT on April 29, 2005 1:13:52 AM]
No no no no! :)
Quote:Original post by paulble
Quote:Original post by MichaelT
Not at all, it is a common problem. It was a bad call to begin with and now we have to live with it. Hopefully they admit their wrongdoings and remove the versionname idea entirely. Better to have the developers patch their software instead. It have only been a few months so the damage is still controllable.


The solution we ended up with for d3dx is the result of some very real issues. For example, Microsoft would like to continually improve the HLSL compiler and other technologies in d3dx (and, in general, most want us to do that too). Some developers who use d3dx must ship on Windows 9x platforms. Most developers who use d3dx are not willing to accept the regression risk that updating shared dlls ex-post-testo causes. Relying on developers to "patch their software" is not always an option -- some developers (or publishers) no longer even exist -- so Microsoft has to try and have solutions whereby we can service our code that applications depend on.

Walking backwards through the above factors, we need a DLL in order to be able to service d3dx effectively. Allowing applications to ship that DLL in their application directory means extremely costly servicing (gdiplus has taught us that). Regression risk means that each release of the shared DLL must be side-by-side in some manner. Windows 9x (and 2k) do not support the Fusion Side-by-Side DLL infrastructure (SxS DLLs) so we have to do some sort of versioning-in-the-filename system.

This isn't a large conspiracy or some wierd power play. It costs us to service things. The monetary aspect is one part but also, our team loses time if we ever have to patch difficult-to-service components. That is time that is better spent on helping developers for our platform in other ways. So poor servicability costs Microsoft and our developers (in different ways). We elected to try and be prepared to service our components if the need arises.

D3DX is in relatively wide use by applications running on a number of Microsoft's platforms and its servicing story required a unique solution. D3DX has also grown from humble beginnings into a pretty large set of APIs and technology in one DLL. We've taken what we've learned through this episode and applied it in numerous ways to future APIs and components. The ability to drop 9x and 2k support (at some point in the future) frees us up tremendously. Ideally, our ability to service components developers depend on would not affect their ability to develop. We're working toward that.

As always though, everyone's comments are welcome, we are listening and trying to improve the situation.

Thanks,
Paul Bleisch
WGGT Solutions



Thanks a lot for the updated comments (and background) surrounding the D3DX DLL Paul.

I think from a developer perspective, more communication like this needs to be in the SDK documentation IMHO. It really beats just being told "Here's how it is, deal with it."

I understand the support side of this though. By day, I do a lot of support for 3rd party apps on the servers and we're constantly running into the same issues you've outlined above. ;)

D3DX has quickly grown from a tacky addon (back in DX7) to the incredibly usefull set of utility methods it provides today.

Although this is an annoying change (for us right now) at the end of the day, it's probably just gonna be a "blip" in the history of DX (ie. similar to the "blip" when DX8.1 came out with no DirectDraw support and the mountains of fury posts here about that).

As for feedback, I think the only problems we're experiencing is the versioning process of the DLL and its redistribution. There should be a simple way that the proper D3DX DLL can be downloaded (or bundled?) for any game using it without violating the DX license agreement and which the customer does not need to redownload the entire runtime installation.

OR perhaps a way to include this "updating" process via the DirectX Control Panel. Then I can simply tell my customers to go to the Control Panel guy and hit the "update D3DX" button which will automagically try to grab the latest version from the MS website and dump it on the local machine (in a quiet mode).



Learn about game programming!Games Programming in C++: Start to Finish

This topic is closed to new replies.

Advertisement