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 <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28297>
This commit is contained in:
committed by
Marge Bot
parent
1900617baf
commit
53ec57d42d
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user