crosire / d3d8to9

A D3D8 pseudo-driver which converts API calls and bytecode shaders to equivalent D3D9 ones.
BSD 2-Clause "Simplified" License
927 stars 83 forks source link

Validate state block calls during state recording #186

Closed WinterSnowfall closed 1 month ago

WinterSnowfall commented 1 month ago

In D3D8 a call to BeginStateBlock() starts state recording and also causes other state block calls (with the exception of EndStateBlock()) to fail. D3D9 does not handle this state block call validation behavior automatically, since some calls such as DeleteStateBlock() are missing altogether.

elishacloud commented 3 weeks ago

@WinterSnowfall, should you set IsRecordingState = false; when Reset() is called?

WinterSnowfall commented 3 weeks ago

@WinterSnowfall, should you set IsRecordingState = false; when Reset() is called?

D3D8 state blocks are not affected by device resets in any way, so no, I don't think that's warranted.