Module: Mesa Branch: main Commit: 49c7d28b0bdb4a8a8a93a3dfd2cb5417c5a3ff83 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=49c7d28b0bdb4a8a8a93a3dfd2cb5417c5a3ff83
Author: Samuel Pitoiset <[email protected]> Date: Wed Aug 31 17:15:27 2022 +0200 radv: gather MRTs that are written by the fragment shader This will be used to filter color attachments without exports. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5786> --- src/amd/vulkan/radv_shader.h | 1 + src/amd/vulkan/radv_shader_info.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h index 16d3dab1db3..3f383edfb66 100644 --- a/src/amd/vulkan/radv_shader.h +++ b/src/amd/vulkan/radv_shader.h @@ -329,6 +329,7 @@ struct radv_shader_info { bool allow_flat_shading; bool has_epilog; unsigned spi_ps_input; + unsigned colors_written; } ps; struct { bool uses_grid_size; diff --git a/src/amd/vulkan/radv_shader_info.c b/src/amd/vulkan/radv_shader_info.c index d61d4399e6c..9f76609f8ff 100644 --- a/src/amd/vulkan/radv_shader_info.c +++ b/src/amd/vulkan/radv_shader_info.c @@ -77,6 +77,10 @@ gather_intrinsic_store_output_info(const nir_shader *nir, const nir_intrinsic_in case MESA_SHADER_GEOMETRY: output_usage_mask = info->gs.output_usage_mask; break; + case MESA_SHADER_FRAGMENT: + if (idx >= FRAG_RESULT_DATA0) + info->ps.colors_written |= 0xf << (4 * (idx - FRAG_RESULT_DATA0)); + break; default: break; }
