From ed4fd542de73a03946f033a2150616423245b4e5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 28 Apr 2016 15:05:29 +0200 Subject: [PATCH] winsys/radeon: drop support for kernels lacking tile mode array queries MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Michel Dänzer --- .../winsys/radeon/drm/radeon_drm_winsys.c | 20 +++++++++++++------ 1 file 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. -- 2.30.2