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>
This commit is contained in:
Alex Deucher 2013-06-07 14:00:11 -04:00
parent 5b3f1ea933
commit f29f206c93
3 changed files with 22 additions and 1 deletions

View File

@ -239,6 +239,13 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void
rctx->max_db = 8;
si_init_config(rctx);
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:
R600_ERR("Unsupported chip class %d.\n", rctx->chip_class);
r600_destroy_context(&rctx->context);
@ -304,6 +311,9 @@ static const char *r600_get_family_name(enum radeon_family family)
case CHIP_VERDE: return "AMD CAPE VERDE";
case CHIP_OLAND: return "AMD OLAND";
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";
}
}
@ -794,7 +804,9 @@ 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;
} else {
fprintf(stderr, "r600: Unsupported family %d\n", rscreen->family);

View File

@ -324,6 +324,11 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
case CHIP_HAINAN:
ws->info.chip_class = SI;
break;
case CHIP_BONAIRE:
case CHIP_KAVERI:
case CHIP_KABINI:
ws->info.chip_class = CIK;
break;
}
/* Check for dma */

View File

@ -125,6 +125,9 @@ enum radeon_family {
CHIP_VERDE,
CHIP_OLAND,
CHIP_HAINAN,
CHIP_BONAIRE,
CHIP_KAVERI,
CHIP_KABINI,
CHIP_LAST,
};
@ -138,6 +141,7 @@ enum chip_class {
EVERGREEN,
CAYMAN,
SI,
CIK,
};
enum ring_type {