AlpyneDreams / d8vk

Direct3D 8 to Vulkan translation for DXVK! Merged into dxvk: https://github.com/doitsujin/dxvk
zlib License
482 stars 6 forks source link

[d3d8] Validate depth stencil format use with CopyRects #207

Closed WinterSnowfall closed 2 months ago

WinterSnowfall commented 7 months ago

As of now CopyRects() succeeds in d8vk if invoked with depth stencil surfaces.

Upstream dxvk will soon add several validations on StretchRect() calls in combination with depth stencils, which could interfere with its use on our end in CopyRects(), however the good news is that the d3d8 documentation states that:

This method cannot be applied to surfaces whose formats are classified as depth stencil formats.

I have written a test, and it looks like WineD3D does indeed respect it, so we should as well, if only to avoid unnecessary d3d9 calls that are bound to fail in the future anyway.

Edit: Native Nvidia also does this validation.