From 1a0b75aa165da9c00d85b856ab04db0daf19d64b Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Sat, 14 Jul 2018 14:28:19 +0200 Subject: [PATCH] radv: Disable disabled color buffers in rbplus opts. CC: Reviewed-by: Samuel Pitoiset (cherry picked from commit c0144e915a8f8ece6f6019ff626220dd70c57967) --- src/amd/vulkan/radv_cmd_buffer.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 28348f4e45c..1e50334f621 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -681,8 +681,11 @@ radv_emit_rbplus_state(struct radv_cmd_buffer *cmd_buffer) unsigned sx_blend_opt_control = 0; for (unsigned i = 0; i < subpass->color_count; ++i) { - if (subpass->color_attachments[i].attachment == VK_ATTACHMENT_UNUSED) + if (subpass->color_attachments[i].attachment == VK_ATTACHMENT_UNUSED) { + sx_blend_opt_control |= S_02875C_MRT0_COLOR_OPT_DISABLE(1) << (i * 4); + sx_blend_opt_control |= S_02875C_MRT0_ALPHA_OPT_DISABLE(1) << (i * 4); continue; + } int idx = subpass->color_attachments[i].attachment; struct radv_color_buffer_info *cb = &framebuffer->attachments[idx].cb; @@ -796,6 +799,10 @@ radv_emit_rbplus_state(struct radv_cmd_buffer *cmd_buffer) } } + for (unsigned i = subpass->color_count; i < 8; ++i) { + sx_blend_opt_control |= S_02875C_MRT0_COLOR_OPT_DISABLE(1) << (i * 4); + sx_blend_opt_control |= S_02875C_MRT0_ALPHA_OPT_DISABLE(1) << (i * 4); + } radeon_set_context_reg_seq(cmd_buffer->cs, R_028754_SX_PS_DOWNCONVERT, 3); radeon_emit(cmd_buffer->cs, sx_ps_downconvert); radeon_emit(cmd_buffer->cs, sx_blend_opt_epsilon);