summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2013-06-07 14:00:11 -0400
committerAlex Deucher <alexander.deucher@amd.com>2013-06-28 15:15:28 -0400
commitf29f206c93743d421c428383afaa2944f680d9c5 (patch)
tree42fad739c58c9e7089efbf683a78e55c2b7a92a0
parent5b3f1ea933a7ab6aa09ecdd1529b2baac558804e (diff)
radeonsi: initial support for CIK chips
Add the infrastructure to differentiate them. Just treat them like SI for now. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--src/gallium/drivers/radeonsi/radeonsi_pipe.c14
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_winsys.c5
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_winsys.h4
3 files changed, 22 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/radeonsi_pipe.c b/src/gallium/drivers/radeonsi/radeonsi_pipe.c
index 775fa97306d..9aa88635290 100644
--- a/src/gallium/drivers/radeonsi/radeonsi_pipe.c
+++ b/src/gallium/drivers/radeonsi/radeonsi_pipe.c
@@ -241,2 +241,9 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void
break;
+ case CIK:
+ si_init_state_functions(rctx);
+ LIST_INITHEAD(&rctx->active_query_list);
+ rctx->cs = rctx->ws->cs_create(rctx->ws, RING_GFX, NULL);
+ rctx->max_db = 8;
+ si_init_config(rctx);
+ break;
default:
@@ -306,2 +313,5 @@ static const char *r600_get_family_name(enum radeon_family family)
case CHIP_HAINAN: return "AMD HAINAN";
+ case CHIP_BONAIRE: return "AMD BONAIRE";
+ case CHIP_KAVERI: return "AMD KAVERI";
+ case CHIP_KABINI: return "AMD KABINI";
default: return "AMD unknown";
@@ -796,3 +806,5 @@ struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws)
/* setup class */
- if (rscreen->family >= CHIP_TAHITI) {
+ if (rscreen->family >= CHIP_BONAIRE) {
+ rscreen->chip_class = CIK;
+ } else if (rscreen->family >= CHIP_TAHITI) {
rscreen->chip_class = SI;
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
index 0eec984565f..033e78f7971 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
@@ -326,2 +326,7 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
break;
+ case CHIP_BONAIRE:
+ case CHIP_KAVERI:
+ case CHIP_KABINI:
+ ws->info.chip_class = CIK;
+ break;
}
diff --git a/src/gallium/winsys/radeon/drm/radeon_winsys.h b/src/gallium/winsys/radeon/drm/radeon_winsys.h
index 8dba64e1819..a619d709754 100644
--- a/src/gallium/winsys/radeon/drm/radeon_winsys.h
+++ b/src/gallium/winsys/radeon/drm/radeon_winsys.h
@@ -127,2 +127,5 @@ enum radeon_family {
CHIP_HAINAN,
+ CHIP_BONAIRE,
+ CHIP_KAVERI,
+ CHIP_KABINI,
CHIP_LAST,
@@ -140,2 +143,3 @@ enum chip_class {
SI,
+ CIK,
};