From 65ee7cd1dfa043d28dd013f513732090470ef9d6 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 31 May 2011 10:52:07 +1000 Subject: [PATCH] r600g: don't emit color blend register on original R600. The original R600 doesn't have these so don't emit them. Signed-off-by: Dave Airlie --- src/gallium/winsys/r600/drm/r600_hw_context.c | 22 ++++++++++++------- src/gallium/winsys/r600/drm/r600_priv.h | 1 + 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/gallium/winsys/r600/drm/r600_hw_context.c b/src/gallium/winsys/r600/drm/r600_hw_context.c index 1e29da2cf09..a3f85d22919 100644 --- a/src/gallium/winsys/r600/drm/r600_hw_context.c +++ b/src/gallium/winsys/r600/drm/r600_hw_context.c @@ -82,6 +82,12 @@ int r600_context_add_block(struct r600_context *ctx, const struct r600_reg *reg, continue; } + /* ignore regs not on R600 on R600 */ + if ((reg[i].flags & REG_FLAG_NOT_R600) && ctx->radeon->family == CHIP_R600) { + n = 1; + continue; + } + /* register that need relocation are in their own group */ /* find number of consecutive registers */ n = 0; @@ -321,14 +327,14 @@ static const struct r600_reg r600_context_reg_list[] = { {R_0286DC_SPI_FOG_CNTL, 0, 0, 0}, {R_0286E0_SPI_FOG_FUNC_SCALE, 0, 0, 0}, {R_0286E4_SPI_FOG_FUNC_BIAS, 0, 0, 0}, - {R_028780_CB_BLEND0_CONTROL, 0, 0, 0}, - {R_028784_CB_BLEND1_CONTROL, 0, 0, 0}, - {R_028788_CB_BLEND2_CONTROL, 0, 0, 0}, - {R_02878C_CB_BLEND3_CONTROL, 0, 0, 0}, - {R_028790_CB_BLEND4_CONTROL, 0, 0, 0}, - {R_028794_CB_BLEND5_CONTROL, 0, 0, 0}, - {R_028798_CB_BLEND6_CONTROL, 0, 0, 0}, - {R_02879C_CB_BLEND7_CONTROL, 0, 0, 0}, + {R_028780_CB_BLEND0_CONTROL, REG_FLAG_NOT_R600, 0, 0}, + {R_028784_CB_BLEND1_CONTROL, REG_FLAG_NOT_R600, 0, 0}, + {R_028788_CB_BLEND2_CONTROL, REG_FLAG_NOT_R600, 0, 0}, + {R_02878C_CB_BLEND3_CONTROL, REG_FLAG_NOT_R600, 0, 0}, + {R_028790_CB_BLEND4_CONTROL, REG_FLAG_NOT_R600, 0, 0}, + {R_028794_CB_BLEND5_CONTROL, REG_FLAG_NOT_R600, 0, 0}, + {R_028798_CB_BLEND6_CONTROL, REG_FLAG_NOT_R600, 0, 0}, + {R_02879C_CB_BLEND7_CONTROL, REG_FLAG_NOT_R600, 0, 0}, {R_0287A0_CB_SHADER_CONTROL, 0, 0, 0}, {R_028800_DB_DEPTH_CONTROL, 0, 0, 0}, {R_028804_CB_BLEND_CONTROL, 0, 0, 0}, diff --git a/src/gallium/winsys/r600/drm/r600_priv.h b/src/gallium/winsys/r600/drm/r600_priv.h index 78b8190d6f5..2e6a4375199 100644 --- a/src/gallium/winsys/r600/drm/r600_priv.h +++ b/src/gallium/winsys/r600/drm/r600_priv.h @@ -65,6 +65,7 @@ struct radeon { #define REG_FLAG_NEED_BO 1 #define REG_FLAG_DIRTY_ALWAYS 2 #define REG_FLAG_RV6XX_SBU 4 +#define REG_FLAG_NOT_R600 8 struct r600_reg { unsigned offset; -- 2.30.2