mesa: Fix ctx->Texture.CubeMapSeamless
authorIago Toral Quiroga <itoral@igalia.com>
Wed, 11 Feb 2015 10:35:35 +0000 (11:35 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Tue, 24 Feb 2015 07:58:54 +0000 (08:58 +0100)
commit6148e3aae7e0d36b59759075bf7a4ce2248ce321
tree69b4e16e2d325362b3e47d8dc2d2ab43fa257335
parentdccdf1d687c3abb9a2fc6695c2090f01fdb65997
mesa: Fix ctx->Texture.CubeMapSeamless

The intel driver code, and apparently all other Mesa drivers, call
_mesa_initialize_context early in the CreateContext hook. That
function will end up calling _mesa_init_texture which will do:

ctx->Texture.CubeMapSeamless = _mesa_is_gles3(ctx);

But this won't work at this point, since _mesa_is_gles3 requires
ctx->Version to be set and that will not happen until late
in the CreateContext hook, when _mesa_compute_version is called.

We can't just move the call to _mesa_compute_version before
_mesa_initialize_context since it needs that available extensions
have been computed, which again requires other things to be
initialized, etc. Instead, we enable seamless cube maps since
GLES2, which should work for most implementations, and expect
drivers that don't support this to disable it manually as part
of their context initialization setup.

Fixes the following 192 dEQP tests:
dEQP-GLES3.functional.texture.filtering.cube.formats.*
dEQP-GLES3.functional.texture.filtering.cube.sizes.*
dEQP-GLES3.functional.texture.filtering.cube.combinations.*
dEQP-GLES3.functional.texture.mipmap.cube.*
dEQP-GLES3.functional.texture.vertex.cube.filtering.*
dEQP-GLES3.functional.texture.vertex.cube.wrap.*
dEQP-GLES3.functional.shaders.texture_functions.texturelod.samplercube_fixed_*

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/main/texstate.c