drm/radeon: add new INFO ioctl requests
Add requests to get the number of shader engines (SE) and the number of SH per SE. These are needed for geometry and tesselation shaders in the 3D driver as well as setting up PA_SC_RASTER_CONFIG on SI asics. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
a02dc74b31
commit
2e1a7674f6
|
@ -361,6 +361,22 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
|
|||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
case RADEON_INFO_MAX_SE:
|
||||
if (rdev->family >= CHIP_TAHITI)
|
||||
value = rdev->config.si.max_shader_engines;
|
||||
else if (rdev->family >= CHIP_CAYMAN)
|
||||
value = rdev->config.cayman.max_shader_engines;
|
||||
else if (rdev->family >= CHIP_CEDAR)
|
||||
value = rdev->config.evergreen.num_ses;
|
||||
else
|
||||
value = 1;
|
||||
break;
|
||||
case RADEON_INFO_MAX_SH_PER_SE:
|
||||
if (rdev->family >= CHIP_TAHITI)
|
||||
value = rdev->config.si.max_sh_per_se;
|
||||
else
|
||||
return -EINVAL;
|
||||
break;
|
||||
default:
|
||||
DRM_DEBUG_KMS("Invalid request %d\n", info->request);
|
||||
return -EINVAL;
|
||||
|
|
|
@ -967,6 +967,10 @@ struct drm_radeon_cs {
|
|||
#define RADEON_INFO_MAX_PIPES 0x10
|
||||
/* timestamp for GL_ARB_timer_query (OpenGL), returns the current GPU clock */
|
||||
#define RADEON_INFO_TIMESTAMP 0x11
|
||||
/* max shader engines (SE) - needed for geometry shaders, etc. */
|
||||
#define RADEON_INFO_MAX_SE 0x12
|
||||
/* max SH per SE */
|
||||
#define RADEON_INFO_MAX_SH_PER_SE 0x13
|
||||
|
||||
struct drm_radeon_info {
|
||||
uint32_t request;
|
||||
|
|
Loading…
Reference in a new issue