summaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys/radeon
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-01-30 02:50:34 +0100
committerMarek Olšák <[email protected]>2016-02-05 17:28:59 +0100
commit4f96846d9d96fcb84fb0fb1823b3f59c3c426253 (patch)
tree516067ccac23d7e53bc08c578c6f2b27d446557f /src/gallium/winsys/radeon
parent276621da451ae93321de05bf63baaf20ee2f32ca (diff)
gallium/radeon: get pipe_interleave_bytes AKA group_bytes from the winsys
Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium/winsys/radeon')
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_winsys.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
index f857a14e033..f7b8c690b14 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
@@ -390,6 +390,15 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
4 << ((ws->info.r600_tiling_config & 0xf0) >> 4) :
4 << ((ws->info.r600_tiling_config & 0x30) >> 4);
+ ws->info.pipe_interleave_bytes =
+ ws->info.chip_class >= EVERGREEN ?
+ 256 << ((ws->info.r600_tiling_config & 0xf00) >> 8) :
+ 256 << ((ws->info.r600_tiling_config & 0xc0) >> 6);
+
+ if (!ws->info.pipe_interleave_bytes)
+ ws->info.pipe_interleave_bytes =
+ ws->info.chip_class >= EVERGREEN ? 512 : 256;
+
if (ws->info.drm_minor >= 11) {
radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_TILE_PIPES, NULL,
&ws->info.num_tile_pipes);