Windows RT with DirectX 9?

Started by
7 comments, last by DwarvesH 10 years, 4 months ago

Does Windows RT support DirectX 9.0 c (SM3) applications? We are programming scientific graphics with SharpDX and converting our existing mammoth engine for DX10 or 11 is not an option. huh.png

Advertisement

No DX9 for Windows store apps:

http://social.msdn.microsoft.com/Forums/windowsapps/en-US/c082b208-0d95-4c41-852f-9450340093f4/difference-between-normal-directx-programming-and-windows-8-directx?forum=wingameswithdirectx

You must use DX11.

It doesn't support the DX 9 API -- you must use the DX11 API, and can target a DX9 feature set -- in fact, all the RT hardware out currently only support "DX 9.3" feature (the new nokia tablet might support higher), but as Alessio1989 points out below, DX 9.1 is really the practical target because of some history relating to how the hardware vendors intersect with the DX spec.

SharpDX supports DX11. Is porting to DX11 API targetting DX 9.3 feature set really not an option? It's the only one you've got, actually.

[Edit] Adding bit to clarify DX targetting info based on the info Alessio1989 shared.

throw table_exception("(? ???)? ? ???");


SharpDX supports DX11. Is porting to DX11 API targetting DX 9.3 feature set really not an option? It's the only one you've got, actually.

I would agree with this question - is it really not an option? The APIs are quite different, but the concepts that they support aren't that different, and should be able to be converted in a reasonable amount of time...

Another issue is that D3D11 flat out doesn't support 9.0c/SM3 class hardware.

D3D11's feature level 9_3 only supports 9.0b/SM2, and then feature level 10 supports SM4... For some reason, SM3 is skipped.
So, you'll have to update your shader code too.

Thanks for all your help. We've have buried the idea of WinRT version. Probably farming carrots would be a simpler way to make a living than DirectX programming. blink.png

Another issue is that D3D11 flat out doesn't support 9.0c/SM3 class hardware.

D3D11's feature level 9_3 only supports 9.0b/SM2, and then feature level 10 supports SM4... For some reason, SM3 is skipped.
So, you'll have to update your shader code too.

According to Chuck Walbourn, we (mostly) must blame ATI (AMD) for that:

You will note there is no feature level which exposes Shader Model 3.0 profiles. Feature Level 9.3 does imply the hardware is actually a Shader Model 3.0 compliant device since it requires instancing. The ps_2_x profile with additional shader capabilties is supported but not the full Shader Model 3.0 profiles. This design was driven by the fact that not all Shader Model 3.0 cards really had the same feature set (notably ATI cards were "Shader Model 3.0" but didn't support vertex shader texture fetch, while other vendors did), and the rule that Shader Model 3.0 vertex and pixel shaders can't be mixed with 2.0 shaders which would have broken the general model for always being able to use a 'lower' profile shader on a 'higher' feature level. You have to use Feature Level 10.0 or later to get vertex shader texture fetch support.

A lot of dx1x GPUs also do not support feature level 9.2 (must thanks Intel this time). So for publish for Windows RT on Windows Store must target at least feature level 9.1...

more infos here: http://blogs.msdn.com/b/chuckw/archive/2012/06/20/direct3d-feature-levels.aspx

"Recursion is the first step towards madness." - "Skegg?ld, Skálm?ld, Skildir ro Klofnir!"
Direct3D 12 quick reference: https://github.com/alessiot89/D3D12QuickRef/


SharpDX supports DX11. Is porting to DX11 API targetting DX 9.3 feature set really not an option? It's the only one you've got, actually.

I would agree with this question - is it really not an option? The APIs are quite different, but the concepts that they support aren't that different, and should be able to be converted in a reasonable amount of time...

Jason Z, Just ordered your DX11 book. Let's see if helps us making a parallel DX11 rendering engine. It's going to be painful road though.

Thanks for all your help. We've have buried the idea of WinRT version. Probably farming carrots would be a simpler way to make a living than DirectX programming. blink.png

You don't have to tell me about it! And I'm not even trying to make a living out of it!

I spent yesterday dealing with the dreaded DirectX 9 half-texel offset issue. The funny thing is that theoretically it has a very simple solution, but every snippet of code out there uses a different approach, and half of them make absolutely no sense!

And I spent today entirely trying and failing to make SMAA work.

This topic is closed to new replies.

Advertisement