diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2012-03-20 13:33:37 -0400 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2012-03-20 13:33:37 -0400 |
commit | 394778d2327dda4cc32b67683d5165e9274a567e (patch) | |
tree | f055391a5cddfaa5901a10061ea02f7f82df0f99 | |
parent | 2893722f58c2b9d15f795b513bc46bd601ef46a2 (diff) |
winsys/radeon: Get max_pipes from the kernel
-rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 10 | ||||
-rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_winsys.h | 1 |
2 files changed, 11 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 051a390ed22..6ba69eece97 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c @@ -81,6 +81,10 @@ #define RADEON_INFO_IB_VM_MAX_SIZE 0x0f #endif +#ifndef RADEON_INFO_MAX_PIPES +#define RADEON_INFO_MAX_PIPES 0x10 +#endif + /* Enable/disable feature access for one command stream. * If enable == TRUE, return TRUE on success. @@ -290,6 +294,12 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws) } } + /* Get max pipes, this is only needed for compute shaders. All evergreen+ + * chips have at least 2 pipes, so we use 2 as a default. */ + ws->info.r600_max_pipes = 2; + radeon_get_drm_value(ws->fd, RADEON_INFO_MAX_PIPES, NULL, + &ws->info.r600_max_pipes); + return TRUE; } diff --git a/src/gallium/winsys/radeon/drm/radeon_winsys.h b/src/gallium/winsys/radeon/drm/radeon_winsys.h index ed3c719d9c7..028570dda9a 100644 --- a/src/gallium/winsys/radeon/drm/radeon_winsys.h +++ b/src/gallium/winsys/radeon/drm/radeon_winsys.h @@ -98,6 +98,7 @@ struct radeon_info { boolean r600_virtual_address; uint32_t r600_va_start; uint32_t r600_ib_vm_max_size; + uint32_t r600_max_pipes; }; enum radeon_feature_id { |