radeon/compute: Implement PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS

v2:
    Add RADEON_INFO_ACTIVE_CU_COUNT as a define, as suggested by
    Tom Stellard

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
This commit is contained in:
Bruno Jiménez 2014-06-13 11:23:14 +02:00 committed by Tom Stellard
parent b8d15ca5e8
commit 03aab2af16
3 changed files with 15 additions and 0 deletions

View file

@ -520,6 +520,13 @@ static int r600_get_compute_param(struct pipe_screen *screen,
}
return sizeof(uint32_t);
case PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS:
if (ret) {
uint32_t *max_compute_units = ret;
*max_compute_units = rscreen->info.max_compute_units;
}
return sizeof(uint32_t);
default:
fprintf(stderr, "unknown PIPE_COMPUTE_CAP %d\n", param);
return 0;

View file

@ -45,6 +45,10 @@
#include <sys/stat.h>
#include <unistd.h>
#ifndef RADEON_INFO_ACTIVE_CU_COUNT
#define RADEON_INFO_ACTIVE_CU_COUNT 0x20
#endif
static struct util_hash_table *fd_tab = NULL;
pipe_static_mutex(fd_tab_mutex);
@ -382,6 +386,9 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
radeon_get_drm_value(ws->fd, RADEON_INFO_MAX_PIPES, NULL,
&ws->info.r600_max_pipes);
radeon_get_drm_value(ws->fd, RADEON_INFO_ACTIVE_CU_COUNT, NULL,
&ws->info.max_compute_units);
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;

View file

@ -198,6 +198,7 @@ struct radeon_info {
uint32_t gart_size;
uint32_t vram_size;
uint32_t max_sclk;
uint32_t max_compute_units;
uint32_t drm_major; /* version */
uint32_t drm_minor;