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);

Reply via email to