[Mesa-dev] [PATCH 1/5] r600g, radeonsi: fix MAX_TEXTURE_3D_LEVELS and MAX_TEXTURE_ARRAY_LAYERS limits

Marek Olšák maraeo at gmail.com
Tue Mar 11 05:15:38 PDT 2014


On Tue, Mar 11, 2014 at 8:10 AM, Michel Dänzer <michel at daenzer.net> wrote:
> On Mon, 2014-03-10 at 01:15 +0100, Marek Olšák wrote:
>> From: Marek Olšák <marek.olsak at amd.com>
>
> This series is
>
> Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
>
>
>> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
>> index 040fc5c..95f022b 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;
>>
>>       /* Render targets. */
>>       case PIPE_CAP_MAX_RENDER_TARGETS:
>
> This is fine for arrays, but it's a bit unfortunate for 3D textures; is
> there anything else that would prevent e.g. a 8192x8192x2 texture from
> working? Maybe this can be handled in a better way at some point in the
> future.

The hardware limit is actually 16384x16384x8192 for textures,
16384x16384x2048 for renderbuffers if layered rendering is enabled,
and 16384x16384xANYTHING if layered rendering is disabled.

The current Mesa won't allow creating a 3D texture larger than
2048x2048x2048, although I think ARB_internalformat_query2 will allow
us to support the full size (16384x16384x2048) if apps decide not to
believe MAX_3D_TEXTURE_SIZE..

Marek


More information about the mesa-dev mailing list