mesa: Use a single enable for GL_EXT_texture_array and GL_MESA_texture_array
Every driver that enables one also enables the other. The difference between the two is MESA adds support for fixed-function and assembly fragment shaders, but EXT only adds support for GLSL. The MESA extension was created back when Mesa did not support GLSL. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
e0587fb9d0
commit
538a7f2a80
|
@ -232,7 +232,6 @@ intelInitExtensions(struct gl_context *ctx)
|
||||||
ctx->Extensions.ATI_separate_stencil = true;
|
ctx->Extensions.ATI_separate_stencil = true;
|
||||||
ctx->Extensions.ATI_texture_env_combine3 = true;
|
ctx->Extensions.ATI_texture_env_combine3 = true;
|
||||||
ctx->Extensions.MESA_pack_invert = true;
|
ctx->Extensions.MESA_pack_invert = true;
|
||||||
ctx->Extensions.MESA_texture_array = true;
|
|
||||||
ctx->Extensions.MESA_ycbcr_texture = true;
|
ctx->Extensions.MESA_ycbcr_texture = true;
|
||||||
ctx->Extensions.NV_conditional_render = true;
|
ctx->Extensions.NV_conditional_render = true;
|
||||||
ctx->Extensions.NV_primitive_restart = true;
|
ctx->Extensions.NV_primitive_restart = true;
|
||||||
|
|
|
@ -641,7 +641,7 @@ pop_enable_group(struct gl_context *ctx, const struct gl_enable_attrib *enable)
|
||||||
_mesa_set_enable(ctx, GL_TEXTURE_CUBE_MAP,
|
_mesa_set_enable(ctx, GL_TEXTURE_CUBE_MAP,
|
||||||
!!(enabled & TEXTURE_CUBE_BIT));
|
!!(enabled & TEXTURE_CUBE_BIT));
|
||||||
}
|
}
|
||||||
if (ctx->Extensions.MESA_texture_array) {
|
if (ctx->Extensions.EXT_texture_array) {
|
||||||
_mesa_set_enable(ctx, GL_TEXTURE_1D_ARRAY_EXT,
|
_mesa_set_enable(ctx, GL_TEXTURE_1D_ARRAY_EXT,
|
||||||
!!(enabled & TEXTURE_1D_ARRAY_BIT));
|
!!(enabled & TEXTURE_1D_ARRAY_BIT));
|
||||||
_mesa_set_enable(ctx, GL_TEXTURE_2D_ARRAY_EXT,
|
_mesa_set_enable(ctx, GL_TEXTURE_2D_ARRAY_EXT,
|
||||||
|
@ -688,7 +688,7 @@ pop_texture_group(struct gl_context *ctx, struct texture_state *texstate)
|
||||||
_mesa_set_enable(ctx, GL_TEXTURE_RECTANGLE_NV,
|
_mesa_set_enable(ctx, GL_TEXTURE_RECTANGLE_NV,
|
||||||
!!(unit->Enabled & TEXTURE_RECT_BIT));
|
!!(unit->Enabled & TEXTURE_RECT_BIT));
|
||||||
}
|
}
|
||||||
if (ctx->Extensions.MESA_texture_array) {
|
if (ctx->Extensions.EXT_texture_array) {
|
||||||
_mesa_set_enable(ctx, GL_TEXTURE_1D_ARRAY_EXT,
|
_mesa_set_enable(ctx, GL_TEXTURE_1D_ARRAY_EXT,
|
||||||
!!(unit->Enabled & TEXTURE_1D_ARRAY_BIT));
|
!!(unit->Enabled & TEXTURE_1D_ARRAY_BIT));
|
||||||
_mesa_set_enable(ctx, GL_TEXTURE_2D_ARRAY_EXT,
|
_mesa_set_enable(ctx, GL_TEXTURE_2D_ARRAY_EXT,
|
||||||
|
@ -768,7 +768,7 @@ pop_texture_group(struct gl_context *ctx, struct texture_state *texstate)
|
||||||
}
|
}
|
||||||
else if ((obj->Target == GL_TEXTURE_1D_ARRAY_EXT ||
|
else if ((obj->Target == GL_TEXTURE_1D_ARRAY_EXT ||
|
||||||
obj->Target == GL_TEXTURE_2D_ARRAY_EXT) &&
|
obj->Target == GL_TEXTURE_2D_ARRAY_EXT) &&
|
||||||
!ctx->Extensions.MESA_texture_array) {
|
!ctx->Extensions.EXT_texture_array) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (obj->Target == GL_TEXTURE_CUBE_MAP_ARRAY &&
|
else if (obj->Target == GL_TEXTURE_CUBE_MAP_ARRAY &&
|
||||||
|
|
|
@ -938,7 +938,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
|
||||||
case GL_TEXTURE_1D_ARRAY_EXT:
|
case GL_TEXTURE_1D_ARRAY_EXT:
|
||||||
if (ctx->API != API_OPENGL_COMPAT)
|
if (ctx->API != API_OPENGL_COMPAT)
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
CHECK_EXTENSION(MESA_texture_array, cap);
|
CHECK_EXTENSION(EXT_texture_array, cap);
|
||||||
if (!enable_texture(ctx, state, TEXTURE_1D_ARRAY_BIT)) {
|
if (!enable_texture(ctx, state, TEXTURE_1D_ARRAY_BIT)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -947,7 +947,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
|
||||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||||
if (ctx->API != API_OPENGL_COMPAT)
|
if (ctx->API != API_OPENGL_COMPAT)
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
CHECK_EXTENSION(MESA_texture_array, cap);
|
CHECK_EXTENSION(EXT_texture_array, cap);
|
||||||
if (!enable_texture(ctx, state, TEXTURE_2D_ARRAY_BIT)) {
|
if (!enable_texture(ctx, state, TEXTURE_2D_ARRAY_BIT)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -321,7 +321,7 @@ static const struct extension extension_table[] = {
|
||||||
{ "GL_IBM_texture_mirrored_repeat", o(dummy_true), GLL, 1998 },
|
{ "GL_IBM_texture_mirrored_repeat", o(dummy_true), GLL, 1998 },
|
||||||
{ "GL_INGR_blend_func_separate", o(EXT_blend_func_separate), GLL, 1999 },
|
{ "GL_INGR_blend_func_separate", o(EXT_blend_func_separate), GLL, 1999 },
|
||||||
{ "GL_MESA_pack_invert", o(MESA_pack_invert), GL, 2002 },
|
{ "GL_MESA_pack_invert", o(MESA_pack_invert), GL, 2002 },
|
||||||
{ "GL_MESA_texture_array", o(MESA_texture_array), GLL, 2007 },
|
{ "GL_MESA_texture_array", o(EXT_texture_array), GLL, 2007 },
|
||||||
{ "GL_MESA_texture_signed_rgba", o(EXT_texture_snorm), GL, 2009 },
|
{ "GL_MESA_texture_signed_rgba", o(EXT_texture_snorm), GL, 2009 },
|
||||||
{ "GL_MESA_window_pos", o(dummy_true), GLL, 2000 },
|
{ "GL_MESA_window_pos", o(dummy_true), GLL, 2000 },
|
||||||
{ "GL_MESA_ycbcr_texture", o(MESA_ycbcr_texture), GL, 2002 },
|
{ "GL_MESA_ycbcr_texture", o(MESA_ycbcr_texture), GL, 2002 },
|
||||||
|
@ -453,7 +453,6 @@ _mesa_enable_sw_extensions(struct gl_context *ctx)
|
||||||
/*ctx->Extensions.EXT_transform_feedback = GL_TRUE;*/
|
/*ctx->Extensions.EXT_transform_feedback = GL_TRUE;*/
|
||||||
ctx->Extensions.EXT_vertex_array_bgra = GL_TRUE;
|
ctx->Extensions.EXT_vertex_array_bgra = GL_TRUE;
|
||||||
ctx->Extensions.MESA_pack_invert = GL_TRUE;
|
ctx->Extensions.MESA_pack_invert = GL_TRUE;
|
||||||
ctx->Extensions.MESA_texture_array = GL_TRUE;
|
|
||||||
ctx->Extensions.MESA_ycbcr_texture = GL_TRUE;
|
ctx->Extensions.MESA_ycbcr_texture = GL_TRUE;
|
||||||
ctx->Extensions.NV_conditional_render = GL_TRUE;
|
ctx->Extensions.NV_conditional_render = GL_TRUE;
|
||||||
ctx->Extensions.NV_point_sprite = GL_TRUE;
|
ctx->Extensions.NV_point_sprite = GL_TRUE;
|
||||||
|
|
|
@ -327,8 +327,8 @@ static const int extra_EXT_framebuffer_sRGB_and_new_buffers[] = {
|
||||||
EXTRA_END
|
EXTRA_END
|
||||||
};
|
};
|
||||||
|
|
||||||
static const int extra_MESA_texture_array_es3[] = {
|
static const int extra_EXT_texture_array_es3[] = {
|
||||||
EXT(MESA_texture_array),
|
EXT(EXT_texture_array),
|
||||||
EXTRA_API_ES3,
|
EXTRA_API_ES3,
|
||||||
EXTRA_END
|
EXTRA_END
|
||||||
};
|
};
|
||||||
|
@ -339,7 +339,7 @@ static const int extra_ARB_shader_atomic_counters_and_geometry_shader[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
EXTRA_EXT(ARB_texture_cube_map);
|
EXTRA_EXT(ARB_texture_cube_map);
|
||||||
EXTRA_EXT(MESA_texture_array);
|
EXTRA_EXT(EXT_texture_array);
|
||||||
EXTRA_EXT(NV_fog_distance);
|
EXTRA_EXT(NV_fog_distance);
|
||||||
EXTRA_EXT(EXT_texture_filter_anisotropic);
|
EXTRA_EXT(EXT_texture_filter_anisotropic);
|
||||||
EXTRA_EXT(NV_point_sprite);
|
EXTRA_EXT(NV_point_sprite);
|
||||||
|
|
|
@ -376,8 +376,8 @@ descriptor=[
|
||||||
[ "PIXEL_UNPACK_BUFFER_BINDING_EXT", "LOC_CUSTOM, TYPE_INT, 0, extra_EXT_pixel_buffer_object" ],
|
[ "PIXEL_UNPACK_BUFFER_BINDING_EXT", "LOC_CUSTOM, TYPE_INT, 0, extra_EXT_pixel_buffer_object" ],
|
||||||
|
|
||||||
# GL_EXT_texture_array
|
# GL_EXT_texture_array
|
||||||
[ "TEXTURE_BINDING_2D_ARRAY", "LOC_CUSTOM, TYPE_INT, TEXTURE_2D_ARRAY_INDEX, extra_MESA_texture_array_es3" ],
|
[ "TEXTURE_BINDING_2D_ARRAY", "LOC_CUSTOM, TYPE_INT, TEXTURE_2D_ARRAY_INDEX, extra_EXT_texture_array_es3" ],
|
||||||
[ "MAX_ARRAY_TEXTURE_LAYERS_EXT", "CONTEXT_INT(Const.MaxArrayTextureLayers), extra_MESA_texture_array_es3" ],
|
[ "MAX_ARRAY_TEXTURE_LAYERS_EXT", "CONTEXT_INT(Const.MaxArrayTextureLayers), extra_EXT_texture_array_es3" ],
|
||||||
|
|
||||||
# GL_EXT_transform_feedback
|
# GL_EXT_transform_feedback
|
||||||
[ "TRANSFORM_FEEDBACK_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_EXT_transform_feedback" ],
|
[ "TRANSFORM_FEEDBACK_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_EXT_transform_feedback" ],
|
||||||
|
@ -507,7 +507,7 @@ descriptor=[
|
||||||
[ "TEXTURE_1D_ARRAY_EXT", "LOC_CUSTOM, TYPE_BOOLEAN, NO_OFFSET, NO_EXTRA" ],
|
[ "TEXTURE_1D_ARRAY_EXT", "LOC_CUSTOM, TYPE_BOOLEAN, NO_OFFSET, NO_EXTRA" ],
|
||||||
[ "TEXTURE_2D_ARRAY_EXT", "LOC_CUSTOM, TYPE_BOOLEAN, NO_OFFSET, NO_EXTRA" ],
|
[ "TEXTURE_2D_ARRAY_EXT", "LOC_CUSTOM, TYPE_BOOLEAN, NO_OFFSET, NO_EXTRA" ],
|
||||||
[ "TEXTURE_BINDING_1D", "LOC_CUSTOM, TYPE_INT, TEXTURE_1D_INDEX, NO_EXTRA" ],
|
[ "TEXTURE_BINDING_1D", "LOC_CUSTOM, TYPE_INT, TEXTURE_1D_INDEX, NO_EXTRA" ],
|
||||||
[ "TEXTURE_BINDING_1D_ARRAY", "LOC_CUSTOM, TYPE_INT, TEXTURE_1D_ARRAY_INDEX, extra_MESA_texture_array" ],
|
[ "TEXTURE_BINDING_1D_ARRAY", "LOC_CUSTOM, TYPE_INT, TEXTURE_1D_ARRAY_INDEX, extra_EXT_texture_array" ],
|
||||||
[ "TEXTURE_GEN_S", "LOC_TEXUNIT, TYPE_BIT_0, offsetof(struct gl_texture_unit, TexGenEnabled), NO_EXTRA" ],
|
[ "TEXTURE_GEN_S", "LOC_TEXUNIT, TYPE_BIT_0, offsetof(struct gl_texture_unit, TexGenEnabled), NO_EXTRA" ],
|
||||||
[ "TEXTURE_GEN_T", "LOC_TEXUNIT, TYPE_BIT_1, offsetof(struct gl_texture_unit, TexGenEnabled), NO_EXTRA" ],
|
[ "TEXTURE_GEN_T", "LOC_TEXUNIT, TYPE_BIT_1, offsetof(struct gl_texture_unit, TexGenEnabled), NO_EXTRA" ],
|
||||||
[ "TEXTURE_GEN_R", "LOC_TEXUNIT, TYPE_BIT_2, offsetof(struct gl_texture_unit, TexGenEnabled), NO_EXTRA" ],
|
[ "TEXTURE_GEN_R", "LOC_TEXUNIT, TYPE_BIT_2, offsetof(struct gl_texture_unit, TexGenEnabled), NO_EXTRA" ],
|
||||||
|
|
|
@ -3430,7 +3430,6 @@ struct gl_extensions
|
||||||
GLboolean ATI_fragment_shader;
|
GLboolean ATI_fragment_shader;
|
||||||
GLboolean ATI_separate_stencil;
|
GLboolean ATI_separate_stencil;
|
||||||
GLboolean MESA_pack_invert;
|
GLboolean MESA_pack_invert;
|
||||||
GLboolean MESA_texture_array;
|
|
||||||
GLboolean MESA_ycbcr_texture;
|
GLboolean MESA_ycbcr_texture;
|
||||||
GLboolean NV_conditional_render;
|
GLboolean NV_conditional_render;
|
||||||
GLboolean NV_fog_distance;
|
GLboolean NV_fog_distance;
|
||||||
|
|
|
@ -759,8 +759,7 @@ legal_getteximage_target(struct gl_context *ctx, GLenum target)
|
||||||
return ctx->Extensions.NV_texture_rectangle;
|
return ctx->Extensions.NV_texture_rectangle;
|
||||||
case GL_TEXTURE_1D_ARRAY_EXT:
|
case GL_TEXTURE_1D_ARRAY_EXT:
|
||||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||||
return (ctx->Extensions.MESA_texture_array ||
|
return ctx->Extensions.EXT_texture_array;
|
||||||
ctx->Extensions.EXT_texture_array);
|
|
||||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
return ctx->Extensions.ARB_texture_cube_map_array;
|
return ctx->Extensions.ARB_texture_cube_map_array;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -752,8 +752,7 @@ _mesa_select_tex_object(struct gl_context *ctx,
|
||||||
const struct gl_texture_unit *texUnit,
|
const struct gl_texture_unit *texUnit,
|
||||||
GLenum target)
|
GLenum target)
|
||||||
{
|
{
|
||||||
const GLboolean arrayTex = (ctx->Extensions.MESA_texture_array ||
|
const GLboolean arrayTex = ctx->Extensions.EXT_texture_array;
|
||||||
ctx->Extensions.EXT_texture_array);
|
|
||||||
|
|
||||||
switch (target) {
|
switch (target) {
|
||||||
case GL_TEXTURE_1D:
|
case GL_TEXTURE_1D:
|
||||||
|
@ -1018,8 +1017,7 @@ _mesa_max_texture_levels(struct gl_context *ctx, GLenum target)
|
||||||
case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
|
case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
|
||||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||||
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
|
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
|
||||||
return (ctx->Extensions.MESA_texture_array ||
|
return ctx->Extensions.EXT_texture_array
|
||||||
ctx->Extensions.EXT_texture_array)
|
|
||||||
? ctx->Const.MaxTextureLevels : 0;
|
? ctx->Const.MaxTextureLevels : 0;
|
||||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
|
@ -1726,8 +1724,7 @@ target_can_be_compressed(const struct gl_context *ctx, GLenum target,
|
||||||
return ctx->Extensions.ARB_texture_cube_map;
|
return ctx->Extensions.ARB_texture_cube_map;
|
||||||
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
|
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
|
||||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||||
return (ctx->Extensions.MESA_texture_array ||
|
return ctx->Extensions.EXT_texture_array;
|
||||||
ctx->Extensions.EXT_texture_array);
|
|
||||||
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
return ctx->Extensions.ARB_texture_cube_map_array;
|
return ctx->Extensions.ARB_texture_cube_map_array;
|
||||||
|
@ -1775,9 +1772,7 @@ legal_teximage_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
&& ctx->Extensions.NV_texture_rectangle;
|
&& ctx->Extensions.NV_texture_rectangle;
|
||||||
case GL_TEXTURE_1D_ARRAY_EXT:
|
case GL_TEXTURE_1D_ARRAY_EXT:
|
||||||
case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
|
case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
|
||||||
return _mesa_is_desktop_gl(ctx)
|
return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_array;
|
||||||
&& (ctx->Extensions.MESA_texture_array ||
|
|
||||||
ctx->Extensions.EXT_texture_array);
|
|
||||||
default:
|
default:
|
||||||
return GL_FALSE;
|
return GL_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -1788,14 +1783,10 @@ legal_teximage_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
case GL_PROXY_TEXTURE_3D:
|
case GL_PROXY_TEXTURE_3D:
|
||||||
return _mesa_is_desktop_gl(ctx);
|
return _mesa_is_desktop_gl(ctx);
|
||||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||||
return (_mesa_is_desktop_gl(ctx)
|
return (_mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_array)
|
||||||
&& (ctx->Extensions.MESA_texture_array ||
|
|
||||||
ctx->Extensions.EXT_texture_array))
|
|
||||||
|| _mesa_is_gles3(ctx);
|
|| _mesa_is_gles3(ctx);
|
||||||
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
|
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
|
||||||
return _mesa_is_desktop_gl(ctx)
|
return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_array;
|
||||||
&& (ctx->Extensions.MESA_texture_array ||
|
|
||||||
ctx->Extensions.EXT_texture_array);
|
|
||||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
return ctx->Extensions.ARB_texture_cube_map_array;
|
return ctx->Extensions.ARB_texture_cube_map_array;
|
||||||
|
@ -1836,9 +1827,7 @@ legal_texsubimage_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
return _mesa_is_desktop_gl(ctx)
|
return _mesa_is_desktop_gl(ctx)
|
||||||
&& ctx->Extensions.NV_texture_rectangle;
|
&& ctx->Extensions.NV_texture_rectangle;
|
||||||
case GL_TEXTURE_1D_ARRAY_EXT:
|
case GL_TEXTURE_1D_ARRAY_EXT:
|
||||||
return _mesa_is_desktop_gl(ctx)
|
return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_array;
|
||||||
&& (ctx->Extensions.MESA_texture_array ||
|
|
||||||
ctx->Extensions.EXT_texture_array);
|
|
||||||
default:
|
default:
|
||||||
return GL_FALSE;
|
return GL_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -1847,9 +1836,7 @@ legal_texsubimage_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
case GL_TEXTURE_3D:
|
case GL_TEXTURE_3D:
|
||||||
return GL_TRUE;
|
return GL_TRUE;
|
||||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||||
return (_mesa_is_desktop_gl(ctx)
|
return (_mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_array)
|
||||||
&& (ctx->Extensions.MESA_texture_array ||
|
|
||||||
ctx->Extensions.EXT_texture_array))
|
|
||||||
|| _mesa_is_gles3(ctx);
|
|| _mesa_is_gles3(ctx);
|
||||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
|
|
|
@ -1189,14 +1189,10 @@ target_enum_to_index(const struct gl_context *ctx, GLenum target)
|
||||||
return _mesa_is_desktop_gl(ctx) && ctx->Extensions.NV_texture_rectangle
|
return _mesa_is_desktop_gl(ctx) && ctx->Extensions.NV_texture_rectangle
|
||||||
? TEXTURE_RECT_INDEX : -1;
|
? TEXTURE_RECT_INDEX : -1;
|
||||||
case GL_TEXTURE_1D_ARRAY:
|
case GL_TEXTURE_1D_ARRAY:
|
||||||
return _mesa_is_desktop_gl(ctx)
|
return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_array
|
||||||
&& (ctx->Extensions.EXT_texture_array
|
|
||||||
|| ctx->Extensions.MESA_texture_array)
|
|
||||||
? TEXTURE_1D_ARRAY_INDEX : -1;
|
? TEXTURE_1D_ARRAY_INDEX : -1;
|
||||||
case GL_TEXTURE_2D_ARRAY:
|
case GL_TEXTURE_2D_ARRAY:
|
||||||
return (_mesa_is_desktop_gl(ctx)
|
return (_mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_array)
|
||||||
&& (ctx->Extensions.EXT_texture_array
|
|
||||||
|| ctx->Extensions.MESA_texture_array))
|
|
||||||
|| _mesa_is_gles3(ctx)
|
|| _mesa_is_gles3(ctx)
|
||||||
? TEXTURE_2D_ARRAY_INDEX : -1;
|
? TEXTURE_2D_ARRAY_INDEX : -1;
|
||||||
case GL_TEXTURE_BUFFER:
|
case GL_TEXTURE_BUFFER:
|
||||||
|
|
|
@ -158,16 +158,13 @@ get_texobj(struct gl_context *ctx, GLenum target, GLboolean get)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GL_TEXTURE_1D_ARRAY_EXT:
|
case GL_TEXTURE_1D_ARRAY_EXT:
|
||||||
if (_mesa_is_desktop_gl(ctx)
|
if (_mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_array) {
|
||||||
&& (ctx->Extensions.MESA_texture_array ||
|
|
||||||
ctx->Extensions.EXT_texture_array)) {
|
|
||||||
return texUnit->CurrentTex[TEXTURE_1D_ARRAY_INDEX];
|
return texUnit->CurrentTex[TEXTURE_1D_ARRAY_INDEX];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||||
if ((_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx))
|
if ((_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx))
|
||||||
&& (ctx->Extensions.MESA_texture_array ||
|
&& ctx->Extensions.EXT_texture_array) {
|
||||||
ctx->Extensions.EXT_texture_array)) {
|
|
||||||
return texUnit->CurrentTex[TEXTURE_2D_ARRAY_INDEX];
|
return texUnit->CurrentTex[TEXTURE_2D_ARRAY_INDEX];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1046,8 +1043,7 @@ legal_get_tex_level_parameter_target(struct gl_context *ctx, GLenum target)
|
||||||
case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
|
case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
|
||||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||||
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
|
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
|
||||||
return (ctx->Extensions.MESA_texture_array ||
|
return ctx->Extensions.EXT_texture_array;
|
||||||
ctx->Extensions.EXT_texture_array);
|
|
||||||
case GL_TEXTURE_BUFFER:
|
case GL_TEXTURE_BUFFER:
|
||||||
/* GetTexLevelParameter accepts GL_TEXTURE_BUFFER in GL 3.1+ contexts,
|
/* GetTexLevelParameter accepts GL_TEXTURE_BUFFER in GL 3.1+ contexts,
|
||||||
* but not in earlier versions that expose ARB_texture_buffer_object.
|
* but not in earlier versions that expose ARB_texture_buffer_object.
|
||||||
|
|
|
@ -73,8 +73,7 @@ legal_texobj_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
return ctx->Extensions.NV_texture_rectangle;
|
return ctx->Extensions.NV_texture_rectangle;
|
||||||
case GL_TEXTURE_1D_ARRAY:
|
case GL_TEXTURE_1D_ARRAY:
|
||||||
case GL_PROXY_TEXTURE_1D_ARRAY:
|
case GL_PROXY_TEXTURE_1D_ARRAY:
|
||||||
return (ctx->Extensions.MESA_texture_array ||
|
return ctx->Extensions.EXT_texture_array;
|
||||||
ctx->Extensions.EXT_texture_array);
|
|
||||||
default:
|
default:
|
||||||
return GL_FALSE;
|
return GL_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -85,8 +84,7 @@ legal_texobj_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
return GL_TRUE;
|
return GL_TRUE;
|
||||||
case GL_TEXTURE_2D_ARRAY:
|
case GL_TEXTURE_2D_ARRAY:
|
||||||
case GL_PROXY_TEXTURE_2D_ARRAY:
|
case GL_PROXY_TEXTURE_2D_ARRAY:
|
||||||
return (ctx->Extensions.MESA_texture_array ||
|
return ctx->Extensions.EXT_texture_array;
|
||||||
ctx->Extensions.EXT_texture_array);
|
|
||||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
return ctx->Extensions.ARB_texture_cube_map_array;
|
return ctx->Extensions.ARB_texture_cube_map_array;
|
||||||
|
|
|
@ -260,7 +260,7 @@ _mesa_ARBfp_parse_option(struct asm_parser_state *state, const char *option)
|
||||||
option += 5;
|
option += 5;
|
||||||
|
|
||||||
if (strcmp(option, "texture_array") == 0) {
|
if (strcmp(option, "texture_array") == 0) {
|
||||||
if (state->ctx->Extensions.MESA_texture_array) {
|
if (state->ctx->Extensions.EXT_texture_array) {
|
||||||
state->option.TexArray = 1;
|
state->option.TexArray = 1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -406,7 +406,6 @@ void st_init_extensions(struct st_context *st)
|
||||||
{ o(NV_texture_barrier), PIPE_CAP_TEXTURE_BARRIER },
|
{ o(NV_texture_barrier), PIPE_CAP_TEXTURE_BARRIER },
|
||||||
/* GL_NV_point_sprite is not supported by gallium because we don't
|
/* GL_NV_point_sprite is not supported by gallium because we don't
|
||||||
* support the GL_POINT_SPRITE_R_MODE_NV option. */
|
* support the GL_POINT_SPRITE_R_MODE_NV option. */
|
||||||
{ o(MESA_texture_array), PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS },
|
|
||||||
|
|
||||||
{ o(OES_standard_derivatives), PIPE_CAP_SM3 },
|
{ o(OES_standard_derivatives), PIPE_CAP_SM3 },
|
||||||
{ o(ARB_texture_cube_map_array), PIPE_CAP_CUBE_MAP_ARRAY },
|
{ o(ARB_texture_cube_map_array), PIPE_CAP_CUBE_MAP_ARRAY },
|
||||||
|
|
Loading…
Reference in New Issue