Looking for DirectX 9 DDK

Nick

Veteran
In my newest project I am attempting to compile my own d3d9.dll. One of the reasons to do that is to have a workable fast emulation of ps 3.0 shaders. My swShader project (see sig.) already offers ps 2.0 emulation at acceptable performance compared to the REF rasterizer.

Although I have a working d3d9.dll COM interface skeleton, the implementation has merely started. My problem is that a lot of it is boring stuff that has little to do with the actual shaders. So I was wondering if I could just take a peek at the REF implementation to save me some work. I plan to eventually write the whole implementation myself so I only need it for learning and as a -ahum- reference.

I found out that the DirectX 7 Driver Development Kit is freely downloadable and has very nice REF source code. But I need DirectX 9 and there are a lot of differences with version 7 so I kept looking for the DirectX 9 DDK. Unfortunately it isn't freely downloadable and is now part of the Windows DDK which can be ordered freely on CD (pay for shipping).

I'm a lazy and broke student so I tried to find the Windows DDK somewhere else. Coincidentally a friend's dad had an MSDN subscription for a while and has the Windows XP DDK and Windows .NET Server 2002 DDK on a backup. I installed both but couldn't find any REF source code folder...

So I was wondering, did my friend's dad leave out the DirectX 9 DDK or am I just looking at the wrong Windows DDK's? If anyone could help me further with this matter I would be very grateful. Or if you could mail it to nicolas@capens.net that would be awesome. If there are no legal issues of course...
 
AFAIK, starting with the W2K-DDK, Microsoft has not made them public anymore. You'll either have to order them from MS on CD, become a MSDN-member with the appropriate subscription, or look in very dark places of the internet (which I haven't had much luck with...).
 
[maven said:
]AFAIK, starting with the W2K-DDK, Microsoft has not made them public anymore. You'll either have to order them from MS on CD, become a MSDN-member with the appropriate subscription, or look in very dark places of the internet (which I haven't had much luck with...).
I don't want to order the CD and definitely don't want an MSDN subscription for just a megabyte of code. :( I'm only a poor student. I checked eMule and it found a few Windows DDKs, but most probably not newer than what I got from my friend's dad (none of them mentioned SP1). But I'll try them anyway...

So if anyone has it sitting on their drives, please look for REF and e-mail it to me. Or release the whole thing on eMule, if no legal issues of course ;)
 
ET said:
Nick, perhaps you could contact Oliver Weichhold, and you two could put together a full D3D DLL? See http://www.flipcode.com/cgi-bin/msg.cgi?showThread=07-25-2002&forum=iotd&id=-1.
I proofread his article for the upcoming ShaderX 2 book and he read mine ;)

But I'm afraid Oliver can't help me much with this:
Oliver Weichhold said:
The goal for creating this piece of software was neither to compete with hardware accelerators on the PC platform nor with Microsofts implementation (which would be plain silly :) but to create core technology 3D development for devices which still stuffer from a lack of hardware accelerated 3D graphics (ie Embedded Devices a la PocketPC) without forcing our own developers and/or licensees to use a high level engine or learn a new API.
So he thinks I'm silly :p He could help me with the COM interfaces but until now I haven't run into too much trouble with them and the DirectX OpenGL Wrapper is an excellent help. So only the REF source code could really help me with the implementation details.

But I'm currently downloading the newest Windows DDK from eMule... ;)
 
Nick I can't help you, but I have a question. Currently you can't set breakpoints and step through shaders in a tool like Rendermonkey because the shaders are running on the hardware. That got me wondering whether swShader could be tied into a shader IDE to allow programmers to step through shader code. What do you think?

Theoretically this could be done with the reference rasteriser as well, but it's slow.
 
Nick said:
Oliver Weichhold said:
The goal for creating this piece of software was ... to create core technology 3D development for devices which still stuffer from a lack of hardware accelerated 3D graphics (ie Embedded Devices a la PocketPC) without forcing our own developers and/or licensees to use a high level engine or learn a new API.
So he thinks I'm silly :p

I don't see how your goals differ. swShader does exactly the same thing -- it provides 3D features on hardware that doesn't support it for the benefit of developers and users.
 
3dcgi said:
Nick I can't help you, but I have a question. Currently you can't set breakpoints and step through shaders in a tool like Rendermonkey because the shaders are running on the hardware. That got me wondering whether swShader could be tied into a shader IDE to allow programmers to step through shader code. What do you think?
I debug all the time by stepping into the code, but what I get is MMX/SSE instruction. But if I understand correctly you would like to be able to place breakpoints in the ps 2.0 shader code and see what the values of the registers are? Its all run-time compiled so its easy to insert 'breakpoint functions'. The build-in register allocator has a spillAll() function which forces all registers to be written back to memory. So that is useful for interrupting execution and continuing like if nothing happened.

I think the reference rasterizer would be better for this because it's closer to specifications. I could make swShader closer to specifications but I need REF source code for that. ;)

I downloaded the Windows XP SP1 DDK overnight, but couldn't find anything new. :cry: So it's definitive now: they are not including the newest DirectX DDK in the Windows DDK. It's so weird that the DirectX 7 DDK is freely downloadable and the DirectX 8 or 9 DDK is unfindable...
 
There is no public available Version of the DX DDK anymore.

If you need it you need a good reason and you have to sign an extra release form with Microsoft Legal.

Microsoft say this have some legal reasons.
 
ET said:
I don't see how your goals differ. swShader does exactly the same thing -- it provides 3D features on hardware that doesn't support it for the benefit of developers and users.
Well ok, our goals do overlap but... I do want to compete with hardware acceleration and the REF implementation :LOL:

I want to compete with hardware in the sense that software rendering is still more flexible than hardware. A few people already showed interest in extending swShader for ray-tracing purposes, even real-time. Also, scientists, mathematicians and engineers could use it for prototyping. This is not directly (pun unintended) possible nor the intend with Olivier's implementation, who has to keep close to the specifications. It's just a job for him.

And I want to compete with the REF rasterizer because I think nowadays there is no good software rendering (except Pixomatic). People actually believe that the REF's performance is all the CPU is capable of. But a lot of the old generation of games, like Counter-Strike, can run perfectly in software with the right optimizations. In a lot of stores they sell computers with 2-3 GHz CPUs but with graphics cards that can't beat software TnL...
 
Demirug said:
There is no public available Version of the DX DDK anymore.
Figured that out by now... Everyone has been telling it to me but I had to see it for myself. ;)
If you need it you need a good reason and you have to sign an extra release form with Microsoft Legal.
What is a good reason? Trying to beat Microsoft's implementation? :p No I don't feel like I have the 'right' to access this code. But I'll build my library anyway even if it takes a little longer. So they might as well let me implement it the right way so they don't get a bad reputation. ;) Seriously now, I just want it for learning purposes. Where do I have to request the extra release form? Thanks.
Microsoft say this have some legal reasons.
Yes, keeping genius students from taking over. :rolleyes:
 
Nick said:
I think the reference rasterizer would be better for this because it's closer to specifications. I could make swShader closer to specifications but I need REF source code for that. ;)
You're probably right. If you're debugging a shader you definitely want to be stepping through code that will give identical results to the hardware. I haven't done much shader programming yet. I was just thinking breakpoints in the actual shader code would be useful.
 
Demirug said:
If you need it you need a good reason and you have to sign an extra release form with Microsoft Legal.

Where did you get this info? I didn't manage to find anything about the DDK at all (except documentation). I mean, it may be possible for Nick to sign such a release form, if he only knew whom to approach at Microsoft.
 
ET said:
Demirug said:
If you need it you need a good reason and you have to sign an extra release form with Microsoft Legal.

Where did you get this info? I didn't manage to find anything about the DDK at all (except documentation). I mean, it may be possible for Nick to sign such a release form, if he only knew whom to approach at Microsoft.

That is what MS tells you if you ask as a DX-SDK-Beta-Member for an DDK.

But until today the do not tell you were you can get this form.
 
ET said:
Where did you get this info? I didn't manage to find anything about the DDK at all (except documentation). I mean, it may be possible for Nick to sign such a release form, if he only knew whom to approach at Microsoft.
I've contacted directx@microsoft.com and shader@microsoft.com and placed a request on microsoft.public.development.device.drivers and microsoft.public.win32.programmer.directx.graphics. I didn't get an replies on the e-mails yet and on usenet there was also nobody from microsoft.

Most probably they are just totally uninterested and/or ignore me because they think a student shouldn't have this information. But I'm going to complete this project anyway, it will just not be 100% compliant. Since only Direct3DCreate9 is exported from d3d9.dll, I can start from the ground up and first ignore complicated features. And for technical details I can always aks you guys... ;)

Thanks!
 
Nick said:
Most probably they are just totally uninterested and/or ignore me because they think a student shouldn't have this information.

I think they just ignore everybody. :) The first time I contacted directx@microsoft.com (I think that was about a D3DSpy problem) it took them about 2 months to reply. Same with NVIDIA's developer relations address, BTW.
 
Any luck finding the DX9 DDK?

I just got interested in it, except the only thing I need is the "d3dhal.h" file.

What I do right now is slowly rebuilding that file from the DX8 version (found it in WXPSP1 DDK), and public info on MSDN.
MSDN is more/less useful for describing structs, but enum/define values are usually missing. (Like the value of D3DGDI2_TYPE_GETD3DCAPS9)

If anyone can help please tell, PM or mail.
 
Back
Top