[Mesa-dev] [PATCH] mesa: raise maximum viewport and texture size to 8192

Brian Paul brianp at vmware.com
Wed Nov 24 11:18:03 PST 2010


On 11/24/2010 12:10 PM, Brian Paul wrote:
> On 11/24/2010 10:20 AM, Brian Paul wrote:
>> On 11/24/2010 05:23 AM, Marek Olšák wrote:
>>> In order to be able to create and render to textures of size 8192x8192
>>> on r600 and nv50, including 3D textures like 8192x4x4.
>>>
>>> Two new piglit tests have been added to test this: fbo-maxsize and
>>> tex3d-maxsize.
>>>
>>> Driver status:
>>> swrast passes fbo-maxsize and segfaults in tex3d-maxsize.
>>> softpipe and r300g pass both.
>>> (r300g returns GL_OUT_OF_MEMORY in tex3d-maxsize).
>>>
>>> Cc: Brian Paul<brianp at vmware.com>
>>> Signed-off-by: Marek Olšák<maraeo at gmail.com>
>>> ---
>>> src/mesa/main/config.h | 14 +++++++-------
>>> 1 files changed, 7 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h
>>> index 0f2d1a8..5388069 100644
>>> --- a/src/mesa/main/config.h
>>> +++ b/src/mesa/main/config.h
>>> @@ -98,16 +98,16 @@
>>> #define MAX_COLOR_TABLE_SIZE 256
>>>
>>> /** Number of 1D/2D texture mipmap levels */
>>> -#define MAX_TEXTURE_LEVELS 13
>>> +#define MAX_TEXTURE_LEVELS 14
>>>
>>> /** Number of 3D texture mipmap levels */
>>> -#define MAX_3D_TEXTURE_LEVELS 9
>>> +#define MAX_3D_TEXTURE_LEVELS 14
>>>
>>> /** Number of cube texture mipmap levels - GL_ARB_texture_cube_map */
>>> -#define MAX_CUBE_TEXTURE_LEVELS 13
>>> +#define MAX_CUBE_TEXTURE_LEVELS 14
>>>
>>> /** Maximum rectangular texture size - GL_NV_texture_rectangle */
>>> -#define MAX_TEXTURE_RECT_SIZE 4096
>>> +#define MAX_TEXTURE_RECT_SIZE 8192
>>>
>>> /** Maximum number of layers in a 1D or 2D array texture -
>>> GL_MESA_texture_array */
>>> #define MAX_ARRAY_TEXTURE_LAYERS 64
>>> @@ -140,11 +140,11 @@
>>> */
>>>
>>> #ifndef MAX_WIDTH
>>> -# define MAX_WIDTH 4096
>>> +# define MAX_WIDTH 8192
>>> #endif
>>> /** Maximum viewport/image height */
>>> #ifndef MAX_HEIGHT
>>> -# define MAX_HEIGHT 4096
>>> +# define MAX_HEIGHT 8192
>>> #endif
>>>
>>> /** Maxmimum size for CVA. May be overridden by the drivers. */
>>> @@ -168,7 +168,7 @@
>>> #define MAX_TEXTURE_MAX_ANISOTROPY 16.0
>>>
>>> /** For GL_EXT_texture_lod_bias (typically MAX_TEXTURE_LEVELS - 1) */
>>> -#define MAX_TEXTURE_LOD_BIAS 12.0
>>> +#define MAX_TEXTURE_LOD_BIAS 13.0
>>>
>>> /** For any program target/extension */
>>> /*@{*/
>>
>> I'm OK w/ increasing the limits but there's a few other issues that need
>> to be fixed before this patch can be applied. I'm working on it now...
>
> Here's a more elaborate patch.
>
> It checks if the memory used by the texture is less than some limit. If
> the limit is exceeded, GL_OUT_OF_MEMORY is generated (unless it's a
> proxy texture). This lets us advertise GL_MAX_3D_TEXTURE_SIZE to be 8K
> (or larger) while preventing actual 8Kx8Kx8K textures but allowing
> 8Kx32x16, for example. This could have been implemented in each of the
> drivers using the ctx->Driver.TestProxyImage() hook but this patch
> avoids all that redundant code.
>
> I'll leave it up to driver maintainers to set the new
> ctx->Const.MaxTextureMBytes field to a reasonable driver. The default is
> currently 1GB.
>
> The max texture size is also bumped up to 16K, Alex.
>
> Ideally, we should also have a piglit test that exercises rasterization
> with the max possible texture/surface size to see if the fixed point
> rasterization really falls apart as I fear.
>
> If there's no comments/concerns I'll commit in a day or two.
>
> I've also posted a patch to the tex3d-maxsize.c test to the piglit test.

Attachment.

-Brian

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MaxTextureMBytes.patch
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20101124/491bc0e8/attachment-0001.ksh>


More information about the mesa-dev mailing list