Sign in to follow this  
lucaskeeper

directX10 possible on XP?

Recommended Posts

hellou! i'm looking for an answer of someone who had already tried this. is possible to use DirectX10 on Win XP? more preciselly, i'm tring to develop the LOD terrain rendering technique of clipmaps (from Hoppe) on an GeForce 8600. I think that it would be useful the use of the new geometry shader of the Shader Model 4.0 that is in DirectX10. Or is there a version of DirectX9 that has it to use in XP? thanks a lot ain advance for answers, Lucas.

Share this post


Link to post
Share on other sites
Quote:
Original post by lucaskeeper
more preciselly, i'm tring to develop the LOD terrain rendering technique of clipmaps (from Hoppe) on an GeForce 8600. I think that it would be useful the use of the new geometry shader of the Shader Model 4.0 that is in DirectX10.


Your out of luck with DirectX unless you upgrade to Vista. However, you can take advantage of geometry shaders on XP with OpenGL. Venders have released extensions to allow OpenGL to take advantage of the new shader model. For instance, NVidia has released the EXT_geometry_shader4 extension to add support for thier shader 4 cards.

Could be worth checking out if you want to learn geometry shaders without forking over cash for an copy of Vista.

Share this post


Link to post
Share on other sites
Quote:
Original post by Billr17
Could be worth checking out if you want to learn geometry shaders without forking over cash for an copy of Vista.


Of course, you'll still need to fork out cash for a DX10-level graphics card (Geforce 8xxx).

Edit: though you've already done that I see... nothin' to see here :-)

Share this post


Link to post
Share on other sites
Quote:
Original post by jpetrie
Quote:

is possible to use DirectX10 on Win XP?

No.
To expand on that a little, the way D3D interfaces with the driver has changed significantly, making using D3D10 on pre-Vista machines impossible. I don't know of any way to access D3D10 functionality on D3D9, I doubt there is such a way.

Share this post


Link to post
Share on other sites
Quote:
Original post by lucaskeeper
more preciselly, i'm tring to develop the LOD terrain rendering technique of clipmaps (from Hoppe) on an GeForce 8600. I think that it would be useful the use of the new geometry shader of the Shader Model 4.0 that is in DirectX10.
Note that Clipmapping does not require geometry shaders, as it was first implemented under DX9, and variations on the technique have even been implemented on DX7-class hardware.

Share this post


Link to post
Share on other sites
Well this is not the full trouth you guys.

OpenGl offers shader model 4 on xp.

But even better there is Wine. The emulator for windows on other systems. It also runs on windows and already started supporting directx10 ;)

Share this post


Link to post
Share on other sites
Quote:
Original post by Evil Steve
Quote:
Original post by jpetrie
Quote:

is possible to use DirectX10 on Win XP?

No.
To expand on that a little, the way D3D interfaces with the driver has changed significantly, making using D3D10 on pre-Vista machines impossible. I don't know of any way to access D3D10 functionality on D3D9, I doubt there is such a way.


No there isn't any way to access the functionality in D3D9 , however the driver model change is mostly a convenient excuse, It is fully possible for Microsoft to create a version of DX10 for Windows XP if they wanted to just like they did with DX9 for Vista.
They won't do it though for exactly the same reason that they never ported DX9 to Windows9x.

Quote:
Original post by DrHalan
Well this is not the full trouth you guys.

OpenGl offers shader model 4 on xp.

But even better there is Wine. The emulator for windows on other systems. It also runs on windows and already started supporting directx10 ;)


Thats a bit of a stretch isn't it ?

They've implemented stubs for DX10, its not anywhere near supported yet :)

Share this post


Link to post
Share on other sites
Quote:
Original post by DrHalan
Well this is not the full trouth you guys.

OpenGl offers shader model 4 on xp.

But even better there is Wine. The emulator for windows on other systems. It also runs on windows and already started supporting directx10 ;)
Yes, but OpenGL doesn't have the whole rewrite that D3D10 does.


Quote:
Original post by SimonForsman
No there isn't any way to access the functionality in D3D9 , however the driver model change is mostly a convenient excuse, It is fully possible for Microsoft to create a version of DX10 for Windows XP if they wanted to just like they did with DX9 for Vista.
They won't do it though for exactly the same reason that they never ported DX9 to Windows9x.
As far as I'm aware, DX9 works just fine on Win9x? Admittedly, I haven't tried it.
The driver stack has been rewritten; various members of the DirectX team have said that it's not possible to get DX10 running on XP, if it was there'd be no reason not to do it - XP has a huge consumer base, and almost nobody will upgrade to Vista just for DX10.
It may be a convenient excuse, but it's also likely to be the truth.

Share this post


Link to post
Share on other sites
Interestingly, on the DX11 technical preview they are mentioning supporting limited features of D3D10 and D3D11 on D3D9 class hardware. It sounds like they are moving back to something like the old system of CAPS bits, except it will be all-or-nothing levels of support.

I'm not sure if this will carry back to XP, but I certainly hope so. I think a huge issue with adopting D3D10 is the requirment of writing a rendering abstraction just to support XP! Especially considering how bad Vista has flopped so far. Smaller developers or non-game developers just don't have the resources for targetting a bunch of APIs.

Eric

Share this post


Link to post
Share on other sites
Quote:

Interestingly, on the DX11 technical preview they are mentioning supporting limited features of D3D10 and D3D11 on D3D9 class hardware. It sounds like they are moving back to something like the old system of CAPS bits, except it will be all-or-nothing levels of support.

I'm not sure if this will carry back to XP, but I certainly hope so. I think a huge issue with adopting D3D10 is the requirment of writing a rendering abstraction just to support XP! Especially considering how bad Vista has flopped so far. Smaller developers or non-game developers just don't have the resources for targetting a bunch of APIs.

10-level-9 still talks to the new driver model underneath afaik, so it's not going to work on XP either.

[Edited by - jpetrie on November 12, 2008 11:31:15 AM]

Share this post


Link to post
Share on other sites
Ok, I know from experience that people love this whole D3D10-on-XP debate but really - it's dead. It's over. It's been discussed on these forums and many others (of varying degrees of intellect) to the extent that there is really nothing new to add.

There are plenty of very good business and technical reasons for why things are the way they are. Unfortunately rational logic and debate doesn't hinder your average tin-foil hat wearing conspiracy nut [smile]

Quote:
As far as I'm aware, DX9 works just fine on Win9x
You're out of luck for the Win95 generation, but everything else is supported by the 9.0c runtime. However, only XP and above are supported for development.

Quote:
10-level-9 still talks to the new driver model underneath afaik, so it's not going to work on XP either.
Yup, thats my take - but more specifically it seems to be accessibly via D3D 10.1 only in the examples I've seen. That is, you'd need Vista-SP1 or above and plain old RTM Vista is a no-go as well as XP...

Quote:
I think a huge issue with adopting D3D10 is the requirment of writing a rendering abstraction just to support XP! Especially considering how bad Vista has flopped so far. Smaller developers or non-game developers just don't have the resources for targetting a bunch of APIs
To fan the flames I'm not really convinced this is such a big issue really.

D3D9.0c had its problems but was a fairly solid API that was very well understood by a huge number of developers. It runs just fine on, as commented above, every current Microsoft operating system. I think D3D11 is the first revision since 9.0c that genuinely offers some new end-to-end abilities that will be very influential (I'm thinking of the multi-threaded capabilities).

I'm pretty confident that the cross section of developers wanting/needing to support WinXP (and 2001-2007 GPU's) and also having a genuine must-have case for D3D10/11 features is extremely small to nonexistant. A good developer can probably get very close to D3D10 level graphics using D3D9c+SM3 and, as I started with, those same developers are likely to want to scale across many more generations of hardware or a much more diverse user base (e.g. hardcore down to casual) that the ~1% of features you can only get via D3D10+ aren't a huge loss.


Jack

Share this post


Link to post
Share on other sites
Quote:
Original post by jollyjeffers
Ok, I know from experience that people love this whole D3D10-on-XP debate but really - it's dead. It's over. It's been discussed on these forums and many others (of varying degrees of intellect) to the extent that there is really nothing new to add.

I agree. But admitedly I'm one of those :P
But I will respect you and avoid any volatile comment

Quote:
Original post by jollyjeffers
I'm pretty confident that the cross section of developers wanting/needing to support WinXP (and 2001-2007 GPU's) and also having a genuine must-have case for D3D10/11 features is extremely small to nonexistant. A good developer can probably get very close to D3D10 level graphics using D3D9c+SM3 and, as I started with, those same developers are likely to want to scale across many more generations of hardware or a much more diverse user base (e.g. hardcore down to casual) that the ~1% of features you can only get via D3D10+ aren't a huge loss.
Jack

Ok. I don't mind D3D 10 interfaces being Vista-only.
However, I would really like to use in XP:
a) Geometry Shaders as well as all (or most) of the SM 4.0
b) Accessing the Z-buffer from Pixel Shader (.... PS 4.0) as well as being able to manipulate it from the CPU like it is possible in D3D10 (i.e. copying the Z buffer to another Z buffer)
c) Render-to-texture antialising
d) Rendering Cubic Environment maps in one pass (again... GS 4.0)

As you can see, all I'm asking are performance improvements (except for the RtR antialising) which could be added to existing D3D9 without introducing tons of new breaking interfaces.

Examples:
*RtR Antialising can be done with driver tweaking. That means it is possible to do it in XP. Is it that hard to add a DX 9.1 call? (just a renderstate call for God sake!)
*Implementing GS was done in OpenGL with a simple extension. Again, is it that hard to do the same thing in DX 9.1 with some simple calls?
*Accessing the Z-buffer from Pixel Shader is completely independent from the API. I really really miss it...

But oh well... that's the coolest stuff DX 10 has to show, and I think I won't be seeing them in XP with DirectX.
D3D10 has other stuff which has to do with just using a programable pipeline everywhere. It can increase performance if used wisely, but I can deal not having it. Most likely that stuff is the kind of stuff that would be hard to port due to the new driver model.

Except the Geometry Shaders, all what I'm asking can be done in D3D9, but it's much slower, because I have to recreate the Z buffer, I have to do 6x draw calls for environment mapping, I have to do my own antialising. I'm not missing new features, but rather the ease of use and speed improvement

Just my 2 cents (and my wish list)
Cheers
Dark Sylinc

Share this post


Link to post
Share on other sites
Quote:
Original post by Matias Goldberg
b) Accessing the Z-buffer from Pixel Shader (.... PS 4.0) as well as being able to manipulate it from the CPU like it is possible in D3D10 (i.e. copying the Z buffer to another Z buffer)


Well you can access the device z-buffer through vendor-specific extensions...it's not nearly as nice as what you have in D3D10 but it works.

Quote:
Original post by Matias Goldberg
c) Render-to-texture antialising


What do you mean by this? You have to go through an extra step when using MSAA on RT textures, but it certainly works.

Quote:
Original post by Matias Goldberg
d) Rendering Cubic Environment maps in one pass (again... GS 4.0)


This is not such a big deal, in my experience anyway. On my 8800 doing any sort of geometry amplification was slow enough to negate whatever benefit was gained by doing all six sides in one pass.


Quote:
Original post by Matias Goldberg
*Implementing GS was done in OpenGL with a simple extension. Again, is it that hard to do the same thing in DX 9.1 with some simple calls?
*Accessing the Z-buffer from Pixel Shader is completely independent from the API. I really really miss it...


Yes but Direct3D doesn't implement things as simple extensions. [smile]
Geometry shaders would require new interfaces, new device methods, and all kinds of modification to the D3DX support classes (constant tables, effects).



Share this post


Link to post
Share on other sites
Quote:
Original post by Evil Steve
The driver stack has been rewritten; various members of the DirectX team have said that it's not possible to get DX10 running on XP, if it was there'd be no reason not to do it - XP has a huge consumer base, and almost nobody will upgrade to Vista just for DX10.
It may be a convenient excuse, but it's also likely to be the truth.


They are probably refering to the Vista runtime, not the API , writing a compatible runtime for any reasonably modern platform cannot be impossible. It is simply a case of Microsoft not wanting to spend alot of resources on adding new features to a 7 year old OS. (And they are right in doing so, people shouldn't expect to get free updates forever)

Share this post


Link to post
Share on other sites
Quote:
Original post by Matias Goldberg
c) Render-to-texture antialising


Render to texture with antialiasing is possible in windows xp/d3d9 and always has been (since the first d3d9 card came out).
What is not currently possible (without a driver hack..) is reading back individual samples. This may or may not be a limiting factor (for mostly any shading operation that is deferred to screen space).

Quote:
Original post by Matias Goldberg*RtR Antialising can be done with driver tweaking. That means it is possible to do it in XP. Is it that hard to add a DX 9.1 call? (just a renderstate call for God sake!)


It may be possible but then there's the loss of opportunity.. In the end when you've added all those "necessary features" to dx9, you end up with a new API. And this new API exists (doh!), it's called D3D10.

LeGreg

Share this post


Link to post
Share on other sites
OK, fair enough. Thanks for the feedback guys!

Quote:
Original post by MJP
Quote:
Original post by Matias Goldberg
b) Accessing the Z-buffer from Pixel Shader (.... PS 4.0) as well as being able to manipulate it from the CPU like it is possible in D3D10 (i.e. copying the Z buffer to another Z buffer)


Well you can access the device z-buffer through vendor-specific extensions...it's not nearly as nice as what you have in D3D10 but it works.

Unless you're talking about OGL extensions, I would be really interested on how to do that in D3D9 (being curious)

Quote:
Original post by MJP
This is not such a big deal, in my experience anyway. On my 8800 doing any sort of geometry amplification was slow enough to negate whatever benefit was gained by doing all six sides in one pass.

That is certainly not cool. Thanks for sharing it.

Quote:
Original post by MJP
Yes but Direct3D doesn't implement things as simple extensions. [smile]

Yes I know, but there has been DX revisions in the past (7.0->7.1, 9.0, 9.0b and c)

Well, life is like it is, even if I don't like it. I guess I'll have to be happy with what I have. (or wait for OpenGL 3.0 4.0?)

Cheers

Share this post


Link to post
Share on other sites
Quote:
Original post by Matias Goldberg
Unless you're talking about OGL extensions, I would be really interested on how to do that in D3D9 (being curious)

There are various ways D3D9 is "extended". In most cases, you call DX methods with data that would be invalid, but the driver detects it as a request to enable a feature.

In the case of reading the ZBuffer, you can create special textures using new format types (there's a FOURCC macro). Those textures can then be used as both a zbuffer and as an input texture (not at the same time of course). The result you get from the buffer is very specific to the vendor, and IIRC AMD and NVidia return completely different results, so you'd need to do a lot of reading about the subject.

Hope this helps.

Share this post


Link to post
Share on other sites
Quote:
Original post by jollyjeffers
Ok, I know from experience that people love this whole D3D10-on-XP debate but really - it's dead. It's over. It's been discussed on these forums and many others (of varying degrees of intellect) to the extent that there is really nothing new to add.

Maybe you should tell this to the developers on the directx mailing list then, developers want D3D10 on XP. It seems they either want that or are not prepared to move to a D3D10 or 11 graphics renderer for some considerable time.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this