PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : D3DXCompileShaderFromFile Absturz unter XP


Neomi
2007-07-13, 01:10:17
N'Abend!

Wenn ich mit D3DXCompileShaderFromFile (die anderen aus der Familie habe ich nicht getestet) einen Shader kompiliere, dann funktioniert das unter Windows 2000 prima. Unter Windows XP (SP2) auch, aber nur, solange ich den Parameter pDefines auf NULL lasse. Wenn ich Defines übergebe (korrekt terminiert), stürzt die DLL (SDK ist Juni 2007, also d3dx9_34.dll) mit einer unbehandelten Ausnahme ab, während exakt die gleiche DLL unter Windows 2000 fehlerfrei das tut, was sie soll.

Wenn ich D3DXSHADER_USE_LEGACY_D3DX9_31_DLL als Flag übergebe, dann bekomme ich zwar auch unter XP einen fertigen Shader raus, aber da ich eh PS 2.0 und VS 2.0 als Minimum betrachte, möchte ich eigentlich schon den potentiell besser optimierenden neuen Compiler nutzen. Einen noch nicht getesten Workaround habe ich mir zwar schon überlegt (aus dem Speicher kompilieren, Defines manuell an den Anfang des Speicherblocks setzen, mit #line passende Fehlermeldungen erlauben, Includes per Interface handhaben), aber richtig glücklich machen mich Workarounds nie.

Meine eigentliche Frage ist jetzt, ob schonmal jemand auf das gleiche Problem gestoßen ist und zumindest die Ursache kennt. Es ist auf beiden Systemen jeweils die gleiche DLL und intern unterschieden sich 2000 und XP in diesem Punkt doch wohl kaum. Wie also kann es auf dem einen System funktionieren, auf dem anderen aber nicht?