 |
|
|
Scene.org is hosted and supported by:
|
|
|
Scene.org is sponsored by:
|
|
|
|
|
 |
forum - #coders |
|
 | | Topic: | No Direct3d 4kb in windows vista? | | | Since windows vista only allows directx 10 and in directx 10 there is no more fixed function pipeline, it's everything done in shaders, and there are no assembly shaders, does that mean that it's harded to do 4kb in Windows Vista?
My deduction comes from this article: http://www.gamedev.net/reference/programming/features/d3d10o verview/
The first big change is going to be to stop relying on fixed-function processing.
As mentioned in the main body of the article, the new Direct3D runtimes deal with HLSL only – such that your ASM code becomes obsolete.
Enlighten me, please.[Post edited by xernobyl on Sunday 15 January 2006 - 21:07] | | |
| Unlikely. In order to support legacy apps (ie ones that used fixed functionality through a d3d dll), there will be a dll which implements fixed functionality. You will be able to link to this.
Interestingly though I note from the article that DX shaders won't be precompiled but compiling technology will be embedded in D3D, just like the shader design in OpenGL. Once again proving OGL is better designed. This probably equalises OpenGL again (for 4k developers), which will be layered on the programmable pipeline as well. In essence it means we'll spend our time optimising source code shaders, not compiled code! You are going to see some pretty heavily obfuscated source code to get it as small as possible in the future.
So...anyone want to try and write an HLSL cruncher? | | |
| What you're quoting is changes for DirectX 10, not changes for Vista.
Vista will support all DirectX interface versions. | | |
|
As you could quite rightly expect, Windows XP and DirectX 9 are still going to be around for some time yet. Officially Windows XP will cease to be supported at the end of 2006, but that doesn't mean it'll just vanish off home users machines (it may well vanish very quickly off corporate networks though). Application compatibility is a big factor in a new OS such that DirectX 9 applications built for Windows XP will still work under Windows Vista, and there will even be an updated version of DirectX 9 to take advantage of the new driver model in Vista ("DirectX 9.L").
My mighty guess: dx9 interface will still be available in dx10, it's just that if one is using the later interface all shaders will have to be in hlsl.
Also hlsl shaders are much smaller than any code one may write in x86 (only assembled shaders have a better compression ratio), so the question is irrelevant anyway.
In 2 words: calm down. | | |
| I have no idea what your comment about hlsl means. The simple fact is, if you use OGL shaders, you end up with a string which is compiled into your binary: the source of the shader. It seems DirectX will go this way at some point too, not the compiled route it has now. This means we will concentrate on crunching source, not binary. Its a fundamental shift in thinking and an interesting one. Less tokens = smaller code. The entropy becomes more controllable.
Its got nothing to do with calming down, its got everything to do with facts.
As for hlsl being smaller than x86...err ok apples are smaller than elephants ..whats your point?[Post edited by auld on Wednesday 18 January 2006 - 8:42] | | |
| | i think hitch was replying to xernobyls post not yours... | | |
| | Ooops yes, Hitch, sorry about the tone. I'll be careful to examine the indentation of replies in future. Thanks for pointing out ps. | | |
| The simple fact is, if you use OGL shaders, you end up with a string which is compiled into your binary: the source of the shader. It seems DirectX will go this way at some point too, not the compiled route it has now.
It is not accurate to imply that you can only have compiled shaders in your code with D3D9. You can include source in your code and then compile it at runtime. The D3D9 runtime accepts only "compiled" shaders (really just a byte code representation of the assembly), you can have source shaders in assembly or you can have source shaders in HLSL.
Like any implementation of software, it has tradeoffs versus a different implementation. With PS 1.0 or PS 1.1, the instruction counts are so low that it really does make sense to write the shader in assembly rather than a higher level language. With only 8 instructions available, its hardly worth the bother to try and write contorted high-level code that compiles to something within the instruction limit.
With D3D10, the base specification requires much higher instruction counts so this problem of very limited instruction counts giving you an incentive to write shaders in assembly goes away. | | |
|
|
|