Mesa (master): radeonsi: emit PA_SC_RASTER_CONFIG[_1] on cik

Alex Deucher agd5f at kemper.freedesktop.org
Fri Jun 28 19:31:45 UTC 2013


Module: Mesa
Branch: master
Commit: 234d81e6b26457a94aae37633c1adc89498bdb4e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=234d81e6b26457a94aae37633c1adc89498bdb4e

Author: Alex Deucher <alexander.deucher at amd.com>
Date:   Fri Jun  7 14:07:10 2013 -0400

radeonsi: emit PA_SC_RASTER_CONFIG[_1] on cik

Use the golden values for each asic.

Todo: update Kabini and Kaveri.

Signed-off-by: Alex Deucher <alexander.deucher at amd.com>

---

 src/gallium/drivers/radeonsi/si_state.c |   51 ++++++++++++++++++++----------
 1 files changed, 34 insertions(+), 17 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 4ef73ec..58e5a56 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2937,23 +2937,40 @@ void si_init_config(struct r600_context *rctx)
 
 	si_pm4_set_reg(pm4, R_02882C_PA_SU_PRIM_FILTER_CNTL, 0);
 
-	switch (rctx->screen->family) {
-	case CHIP_TAHITI:
-	case CHIP_PITCAIRN:
-		si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x2a00126a);
-		break;
-	case CHIP_VERDE:
-		si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x0000124a);
-		break;
-	case CHIP_OLAND:
-		si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x00000082);
-		break;
-	case CHIP_HAINAN:
-		si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x00000000);
-		break;
-	default:
-		si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x00000000);
-		break;
+	if (rctx->chip_class >= CIK) {
+		switch (rctx->screen->family) {
+		case CHIP_BONAIRE:
+			si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x16000012);
+			si_pm4_set_reg(pm4, R_028354_PA_SC_RASTER_CONFIG_1, 0x00000000);
+			break;
+		case CHIP_KAVERI:
+			/* XXX todo */
+		case CHIP_KABINI:
+			/* XXX todo */
+		default:
+			si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x00000000);
+			si_pm4_set_reg(pm4, R_028354_PA_SC_RASTER_CONFIG_1, 0x00000000);
+			break;
+		}
+	} else {
+		switch (rctx->screen->family) {
+		case CHIP_TAHITI:
+		case CHIP_PITCAIRN:
+			si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x2a00126a);
+			break;
+		case CHIP_VERDE:
+			si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x0000124a);
+			break;
+		case CHIP_OLAND:
+			si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x00000082);
+			break;
+		case CHIP_HAINAN:
+			si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x00000000);
+			break;
+		default:
+			si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x00000000);
+			break;
+		}
 	}
 
 	si_pm4_set_state(rctx, init, pm4);




More information about the mesa-commit mailing list