Module: Mesa Branch: main Commit: 80cafa35712732f027b2ca995f8e3a85bc41da5a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=80cafa35712732f027b2ca995f8e3a85bc41da5a
Author: Rohan Garg <[email protected]> Date: Mon Feb 20 17:11:21 2023 +0100 anv: ensure that we clamp only when EXT_depth_range_unrestricted is not enabled Signed-off-by: Rohan Garg <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26426> --- src/intel/vulkan/genX_gfx_state.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/genX_gfx_state.c b/src/intel/vulkan/genX_gfx_state.c index c9dd8a2361a..21f1aa005b2 100644 --- a/src/intel/vulkan/genX_gfx_state.c +++ b/src/intel/vulkan/genX_gfx_state.c @@ -1164,12 +1164,16 @@ genX(cmd_buffer_flush_gfx_runtime_state)(struct anv_cmd_buffer *cmd_buffer) SET_VP(VIEWPORT_SF_CLIP, vp_sf_clip.elem[i], YMaxViewPort); #undef SET_VP + const bool depth_range_unrestricted = + cmd_buffer->device->vk.enabled_extensions.EXT_depth_range_unrestricted; + + float min_depth_limit = depth_range_unrestricted ? -FLT_MAX : 0.0; + float max_depth_limit = depth_range_unrestricted ? FLT_MAX : 1.0; + float min_depth = dyn->rs.depth_clamp_enable ? - MIN2(vp->minDepth, vp->maxDepth) : - 0.0f; + MIN2(vp->minDepth, vp->maxDepth) : min_depth_limit; float max_depth = dyn->rs.depth_clamp_enable ? - MAX2(vp->minDepth, vp->maxDepth) : - 1.0f; + MAX2(vp->minDepth, vp->maxDepth) : max_depth_limit; SET(VIEWPORT_CC, vp_cc.elem[i].MinimumDepth, min_depth); SET(VIEWPORT_CC, vp_cc.elem[i].MaximumDepth, max_depth);
