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