From 53ec57d42dc09a43ceb6ec274a7fbb3460db0136 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 20 Mar 2024 12:35:54 +0100 Subject: [PATCH] radv: always export MRTZ in FS epilogs with ESO on GFX11 Alpha to coverage is special on RDNA3 and it needs to be emitted through MRTZ in some situations. Because we can't know this at compile time when everything is dynamic, we have to always emit MRTZ in PS epilogs. This fixes remaining failures on NAVI31 with Zink/ESO/RADV like spec@ext_packed_depth_stencil@fbo-depthstencil-gl_depth24_stencil8-drawpixels-float-and-ushort. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_shader_object.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_shader_object.c b/src/amd/vulkan/radv_shader_object.c index ed4ed1aecc3..ffdc3c55e06 100644 --- a/src/amd/vulkan/radv_shader_object.c +++ b/src/amd/vulkan/radv_shader_object.c @@ -150,7 +150,7 @@ radv_shader_object_init_graphics(struct radv_shader_object *shader_obj, struct r gfx_state.dynamic_line_rast_mode = true; if (device->physical_device->rad_info.gfx_level >= GFX11) - gfx_state.ms.alpha_to_coverage_via_mrtz = true; + gfx_state.ps.exports_mrtz_via_epilog = true; struct radv_shader *shader = NULL; struct radv_shader_binary *binary = NULL; @@ -426,7 +426,7 @@ radv_shader_object_create_linked(VkDevice _device, uint32_t createInfoCount, con gfx_state.dynamic_line_rast_mode = true; if (device->physical_device->rad_info.gfx_level >= GFX11) - gfx_state.ms.alpha_to_coverage_via_mrtz = true; + gfx_state.ps.exports_mrtz_via_epilog = true; for (unsigned i = 0; i < createInfoCount; i++) { const VkShaderCreateInfoEXT *pCreateInfo = &pCreateInfos[i];