radv: make sure to disable MRT compaction when compiling a PS epilog with GPL

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21140>
This commit is contained in:
Samuel Pitoiset
2023-02-08 15:09:09 +01:00
committed by Marge Bot
parent 16e4dd3e37
commit 06d17fccfb

View File

@@ -2421,7 +2421,14 @@ radv_generate_graphics_pipeline_key(const struct radv_graphics_pipeline *pipelin
!(lib_flags & VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT)) ||
key.ps.dynamic_ps_epilog);
key.ps.epilog = radv_pipeline_generate_ps_epilog_key(pipeline, state, key.ps.has_epilog);
/* Disable MRT compaction when it's not possible to know both the written color outputs and the
* color blend attachments.
*/
bool disable_mrt_compaction = key.ps.has_epilog ||
((lib_flags & VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT) &&
!(lib_flags & VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT));
key.ps.epilog = radv_pipeline_generate_ps_epilog_key(pipeline, state, disable_mrt_compaction);
key.dynamic_patch_control_points =
!!(pipeline->dynamic_states & RADV_DYNAMIC_PATCH_CONTROL_POINTS);