why E_NOTIMPL can be returned from D3DXCreateEffectFromFile

Started by
1 comment, last by jollyjeffers 16 years, 11 months ago
After spending a couple days on this I figured it would be good to mention this so future googlers can find it. If you use vs_1_1 or any other 1.x architecture in a shader, E_NOTIMPL will get returned as of the latest SDK update (feb 2007). If you change it to 2_0 or anything more recent it will work fine. It was hard for me to figure this out because I wasn't getting any error message, even with debugging turned all the way up on directx. Why they would remove support like this I have no clue.. but whatever. At least it's working now :)
Advertisement
Yeah, the last few SDKs use a newer FX compiler that doesn't have 1.1 support. It also apparently doesn't optimize very well (perfect to include in the SDK, right?). They say 1.1 support will be re-added later. I'm predicting they'll eventually announce that 1.1 is deprecated instead. Newer SDKs also don't support Win98/Win2K for end user runtimes. I think everyone at work stopped upgrading last August, as we need to support older OS versions and cards, and no immediate plans to support anything Vista specific.
There was a fair bit of grumbling when this change was announced [lol]

You can auto-promote SM1 shaders to SM2 by using D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY, or you can force an additional dependency on an older D3DX DLL to compile SM1 by using D3DXSHADER_USE_LEGACY_D3DX9_31_DLL...


hth
Jack

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

This topic is closed to new replies.

Advertisement