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