Module: Mesa
Branch: main
Commit: 2e72917923f0b2e3d2a2d00fe6d73293f1753761
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2e72917923f0b2e3d2a2d00fe6d73293f1753761

Author: Rohan Garg <rohan.g...@intel.com>
Date:   Wed Feb 15 23:37:48 2023 +0100

blorp: set min/max viewport depths to -FLT_MAX/FLT_MAX when 
EXT_depth_range_unrestricted is enabled

Signed-off-by: Rohan Garg <rohan.g...@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Reviewed-by: Tapani Pälli <tapani.pa...@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26426>

---

 src/intel/blorp/blorp.h           | 1 +
 src/intel/blorp/blorp_genX_exec.h | 6 ++++--
 src/intel/vulkan/anv_blorp.c      | 2 ++
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/intel/blorp/blorp.h b/src/intel/blorp/blorp.h
index 6da62f07839..a9aa72afef9 100644
--- a/src/intel/blorp/blorp.h
+++ b/src/intel/blorp/blorp.h
@@ -57,6 +57,7 @@ struct blorp_params;
 
 struct blorp_config {
    bool use_mesh_shading;
+   bool use_unrestricted_depth_range;
 };
 
 struct blorp_context {
diff --git a/src/intel/blorp/blorp_genX_exec.h 
b/src/intel/blorp/blorp_genX_exec.h
index 1edef3106b2..9e269f9c7dd 100644
--- a/src/intel/blorp/blorp_genX_exec.h
+++ b/src/intel/blorp/blorp_genX_exec.h
@@ -631,8 +631,10 @@ blorp_emit_cc_viewport(struct blorp_batch *batch)
 {
    uint32_t cc_vp_offset;
    blorp_emit_dynamic(batch, GENX(CC_VIEWPORT), vp, 32, &cc_vp_offset) {
-      vp.MinimumDepth = 0.0;
-      vp.MaximumDepth = 1.0;
+      vp.MinimumDepth = batch->blorp->config.use_unrestricted_depth_range ?
+                           -FLT_MAX : 0.0;
+      vp.MaximumDepth = batch->blorp->config.use_unrestricted_depth_range ?
+                           FLT_MAX : 1.0;
    }
 
 #if GFX_VER >= 7
diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
index d9c5818156c..9132ebaa05e 100644
--- a/src/intel/vulkan/anv_blorp.c
+++ b/src/intel/vulkan/anv_blorp.c
@@ -93,6 +93,8 @@ anv_device_init_blorp(struct anv_device *device)
 {
    const struct blorp_config config = {
       .use_mesh_shading = device->vk.enabled_extensions.EXT_mesh_shader,
+      .use_unrestricted_depth_range =
+         device->vk.enabled_extensions.EXT_depth_range_unrestricted,
    };
 
    blorp_init(&device->blorp, device, &device->isl_dev, &config);

Reply via email to