On Apr 14, 2010, at 1:48 PM, Matijn Woudt wrote:
I think you want to test if the compiled shader works instead of the exact bytecode. Generating the same bytecode is probably way too hard, fragile to test, and most likely not worth the effort.
I think I should go for exact bytecode as long as it is possible, it's the only way we can be sure the implementation is 100% right for each test case.
FYI, we encountered a game a while back which used a few shaders that depended on being compiled with a particular version for d3dx9_##.dll. There was a compiler bug which the game engine knew about and accounted for. If you tried to use the compiled shader from a newer d3dx9_##.dll, then the rendering wouldn't look quite right on certain objects.
So, there's one argument for identical bytecode compatibility, but it's likely that very few apps will exhibit behavior like this.