Closed WinterSnowfall closed 1 year ago
So, it turns out it's not nearly enough. The missing piece of the puzzle is that the bridge uses an extended d3d9 device, whereas we want it to act as a regular device for the new Reset() logic to work properly.
I'm not sure how to fix this properly, but I've confirmed that making the device behave like a regular device (basically IsExtended() always returning false) does make things work as expected and passes the tests I wrote.
Ok, now that we use a non-extended d3d9 device, the entire process works if we also pipe TestCooperativeLevel().
Closes #168 (hopefully should be enough, I still need to test it). Should ensure proper DEVICENOTRESET behavior in d3d8 as well. For more details, please see: https://github.com/doitsujin/dxvk/pull/3486 . I have a test in place that has confirmed WineD3D and native AMD enforce the behavior in D3D8, and in this regard the specs are the same anyway.