summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-04-28 15:05:29 +0200
committerMarek Olšák <[email protected]>2016-05-02 22:49:25 +0200
commited4fd542de73a03946f033a2150616423245b4e5 (patch)
treec59796f92558b19ddba578bb5459232b23dc825f /src/gallium
parent3d956b4bc0b346a6dff23bfe56c6b5ae1ec1ddaa (diff)
winsys/radeon: drop support for kernels lacking tile mode array queries
This will allow us to simplify a lot of code around tiling. Kernel 3.10 is required for SI support. Kernel 3.13 is required for CIK support. Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_winsys.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
index 2d9ec8cee09..702d0733bfa 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
@@ -504,14 +504,22 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
return FALSE;
}
- if (radeon_get_drm_value(ws->fd, RADEON_INFO_SI_TILE_MODE_ARRAY, NULL,
- ws->info.si_tile_mode_array)) {
- ws->info.si_tile_mode_array_valid = TRUE;
+ if (ws->info.chip_class == CIK) {
+ if (!radeon_get_drm_value(ws->fd, RADEON_INFO_CIK_MACROTILE_MODE_ARRAY, NULL,
+ ws->info.cik_macrotile_mode_array)) {
+ fprintf(stderr, "radeon: Kernel 3.13 is required for CIK support.\n");
+ return FALSE;
+ }
+ ws->info.cik_macrotile_mode_array_valid = TRUE;
}
- if (radeon_get_drm_value(ws->fd, RADEON_INFO_CIK_MACROTILE_MODE_ARRAY, NULL,
- ws->info.cik_macrotile_mode_array)) {
- ws->info.cik_macrotile_mode_array_valid = TRUE;
+ if (ws->info.chip_class >= SI) {
+ if (!radeon_get_drm_value(ws->fd, RADEON_INFO_SI_TILE_MODE_ARRAY, NULL,
+ ws->info.si_tile_mode_array)) {
+ fprintf(stderr, "radeon: Kernel 3.10 is required for SI support.\n");
+ return FALSE;
+ }
+ ws->info.si_tile_mode_array_valid = TRUE;
}
/* Hawaii with old firmware needs type2 nop packet.