At least some GEN hardware can do more than the 256 that the driver advertises. Increase the advertised limit to the actual hardware limit.
In theory, this should be easy. All Gen4+ systems support 2048x2048 3D textures, so we could just bump the limit. However, that results in a *huge* image. Piglit's max-texture-size test begins failing because it can't allocate enough size. We also bump up against the ctx->Const.MaxTextureMbytes limit (which we can set however high we feel like - it just needs to get bumped too).
It turns out the Piglit test just liked to label things as "fail" when it didn't have enough memory to properly test them...among a myriad of other issues. I've sent 11 patches to the Piglit list to improve the test. I've also sent out 3 patches to mesa-dev that increase our GL_MAX_{3D,CUBE_MAP}_TEXTURE_SIZE limits.
Fixed by the following commits. These will be in Mesa 10.2. commit c593ad6e467b07ec0c70923d79259dbfb68b1bed Author: Kenneth Graunke <kenneth@whitecape.org> Date: Sun Feb 2 03:03:39 2014 -0800 i965: Bump MaxTexMbytes from 1GB to 1.5GB. Even with the other limits raised, TestProxyTexImage would still reject textures > 1GB in size. This is an artificial limit; nothing prevents us from having a larger texture. I stayed shy of 2GB to avoid the larger-than-aperture situation. For 3D textures, this raises the effective limit: - RGBA8: 645 -> 738 - RGBA16: 512 -> 586 - RGBA32F: 406 -> 465 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74130 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> commit 6c044231535b93c5d16404528946cad618d96bd9 Author: Kenneth Graunke <kenneth@whitecape.org> Date: Sun Feb 2 02:58:42 2014 -0800 i965: Bump GL_MAX_CUBE_MAP_TEXTURE_SIZE to 8192. Gen4+ supports 8192x8192 cube maps. Ivybridge and later can actually support 16384, but that would place GL_MAX_CUBE_MAP_TEXTURE_SIZE above GL_MAX_TEXTURE_SIZE, which seems like a bad idea. (Unfortunately, we can't bump GL_MAX_TEXTURE_SIZE to 16384 without causing regressions due to awful W-tiled stencil buffer interactions.) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74130 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> commit 06b047ebc75c6af02f806d051a5703748ee76b69 Author: Kenneth Graunke <kenneth@whitecape.org> Date: Sun Feb 2 02:51:45 2014 -0800 i965: Bump MAX_3D_TEXTURE_SIZE to 2048. It's highly unlikely that there will be enough memory in the system to allocate enough space for this, but we should still expose the hardware limit. It's what the Intel Windows driver does, and it seems most other vendors do likewise. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74130 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.