From 57d0d63d014e87127470c015fc26f8d9beea6111 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 5 Jun 2024 09:41:18 +0200 Subject: [PATCH] radv: only emit CB_COLOR0_DCC_CONTROL on GFX8 This register doesn't exist on GFX6-7 (no DCC at all). Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index cd51e204cab..9a81c16ef17 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -3969,14 +3969,18 @@ radv_emit_fb_color_state(struct radv_cmd_buffer *cmd_buffer, int index, struct r radeon_set_context_reg(cmd_buffer->cs, R_0287A0_CB_MRT0_EPITCH + index * 4, cb->ac.cb_mrt_epitch); } else { - radeon_set_context_reg_seq(cmd_buffer->cs, R_028C60_CB_COLOR0_BASE + index * 0x3c, 11); + radeon_set_context_reg_seq(cmd_buffer->cs, R_028C60_CB_COLOR0_BASE + index * 0x3c, 6); radeon_emit(cmd_buffer->cs, cb->ac.cb_color_base); radeon_emit(cmd_buffer->cs, cb->ac.cb_color_pitch); radeon_emit(cmd_buffer->cs, cb->ac.cb_color_slice); radeon_emit(cmd_buffer->cs, cb->ac.cb_color_view); radeon_emit(cmd_buffer->cs, cb_color_info); radeon_emit(cmd_buffer->cs, cb->ac.cb_color_attrib); - radeon_emit(cmd_buffer->cs, cb->ac.cb_dcc_control); + + if (pdev->info.gfx_level == GFX8) + radeon_set_context_reg(cmd_buffer->cs, R_028C78_CB_COLOR0_DCC_CONTROL + index * 0x3c, cb->ac.cb_dcc_control); + + radeon_set_context_reg_seq(cmd_buffer->cs, R_028C7C_CB_COLOR0_CMASK + index * 0x3c, 4); radeon_emit(cmd_buffer->cs, cb->ac.cb_color_cmask); radeon_emit(cmd_buffer->cs, cb->ac.cb_color_cmask_slice); radeon_emit(cmd_buffer->cs, cb->ac.cb_color_fmask);