vkd3d: Implement d3d12_command_list_OMSetDepthBounds().

Based on the design document, "The runtime will not clamp or validate
the input, but implementations may clamp to the range [0,1] if necessary.",
so we test for the EXT_depth_range_unrestricted extension, and only clamp if
it's not available (thus, necessary to do so).

NaNs are converted to zero as per "NaNs must be treated as 0, but the runtime
will convert NaNs to 0 on behalf of the implementation.", and a default bounds
are set to 0.0 and 1.0.
This commit is contained in:
Anna (navi) Figueiredo Gomes
2024-09-01 20:32:20 +02:00
committed by Henri Verbeet
parent 61a700bcdc
commit 127ae6cf12
Notes: Henri Verbeet 2024-09-11 15:31:24 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1031
6 changed files with 38 additions and 7 deletions

View File

@@ -37,8 +37,8 @@ depth greater equal
clear rtv 0 0.0 0.0 0.0 0.0
clear dsv 0.0
todo(glsl) draw quad
todo(d3d12) probe (0, 0) rgba(0, 0, 0, 0)
todo probe uav 1 (0) r(0.0)
probe (0, 0) rgba(0, 0, 0, 0)
todo(sm<6) probe uav 1 (0) r(0.0)
clear rtv 0 0.0 0.0 0.0 0.0
clear dsv 0.3
@@ -61,5 +61,5 @@ probe uav 1 (0) r(1.0)
clear rtv 0 0.0 0.0 0.0 0.0
clear dsv 1.0
todo(glsl) draw quad
todo(d3d12) probe (0, 0) rgba(0, 0, 0, 0)
todo probe uav 1 (0) r(0.0)
probe (0, 0) rgba(0, 0, 0, 0)
todo(sm<6) probe uav 1 (0) r(0.0)