diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index d88284b60ed..0b55a41c4fc 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -419,15 +419,17 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param) /* Texturing. */ case PIPE_CAP_MAX_TEXTURE_2D_LEVELS: - case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: if (family >= CHIP_CEDAR) return 15; else return 14; + case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: + /* textures support 8192, but layered rendering supports 2048 */ + return 12; case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: - return rscreen->b.info.drm_minor >= 9 ? - (family >= CHIP_CEDAR ? 16384 : 8192) : 0; + /* textures support 8192, but layered rendering supports 2048 */ + return rscreen->b.info.drm_minor >= 9 ? 2048 : 0; case PIPE_CAP_MAX_COMBINED_SAMPLERS: return 48; diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 4af3afb6b5a..c0eb9c27e0d 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -307,11 +307,14 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param) /* Texturing. */ case PIPE_CAP_MAX_TEXTURE_2D_LEVELS: - case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: - return 15; + return 15; /* 16384 */ + case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: + /* textures support 8192, but layered rendering supports 2048 */ + return 12; case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: - return 16384; + /* textures support 8192, but layered rendering supports 2048 */ + return 2048; case PIPE_CAP_MAX_COMBINED_SAMPLERS: return HAVE_LLVM >= 0x0305 ? 48 : 32;