mesa: Only expose GLES's EXT_texture_type_2_10_10_10_REV if supported in HW.
Previously, we were downconverting to 8888 automatically if the hardware didn't suport it. However, with the advent of GL_OES_required_internalformat, we have to actually store the internalformats we advertise support for. And, it seems rather disingenuous to advertise the extension if we don't actually support it. v2: Throw an error when using the format on ES2 without the extension present. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
@@ -113,6 +113,7 @@ intelInitExtensions(struct gl_context *ctx)
|
||||
ctx->Extensions.EXT_texture_sRGB = true;
|
||||
ctx->Extensions.EXT_texture_sRGB_decode = true;
|
||||
ctx->Extensions.EXT_texture_swizzle = true;
|
||||
ctx->Extensions.EXT_texture_type_2_10_10_10_REV = true;
|
||||
ctx->Extensions.EXT_vertex_array_bgra = true;
|
||||
ctx->Extensions.KHR_robustness = true;
|
||||
ctx->Extensions.AMD_seamless_cubemap_per_texture = true;
|
||||
|
@@ -284,7 +284,7 @@ EXT(EXT_texture_sRGB_decode , EXT_texture_sRGB_decode
|
||||
EXT(EXT_texture_shared_exponent , EXT_texture_shared_exponent , GLL, GLC, x , x , 2004)
|
||||
EXT(EXT_texture_snorm , EXT_texture_snorm , GLL, GLC, x , x , 2009)
|
||||
EXT(EXT_texture_swizzle , EXT_texture_swizzle , GLL, GLC, x , x , 2008)
|
||||
EXT(EXT_texture_type_2_10_10_10_REV , dummy_true , x , x , x , ES2, 2008)
|
||||
EXT(EXT_texture_type_2_10_10_10_REV , EXT_texture_type_2_10_10_10_REV , x , x , x , ES2, 2008)
|
||||
EXT(EXT_timer_query , EXT_timer_query , GLL, GLC, x , x , 2006)
|
||||
EXT(EXT_transform_feedback , EXT_transform_feedback , GLL, GLC, x , x , 2011)
|
||||
EXT(EXT_unpack_subimage , dummy_true , x , x , x , ES2, 2011)
|
||||
|
@@ -2234,7 +2234,8 @@ _mesa_es_error_check_format_and_type(const struct gl_context *ctx,
|
||||
|| type == GL_UNSIGNED_SHORT_5_5_5_1
|
||||
|| type == GL_FLOAT
|
||||
|| type == GL_HALF_FLOAT_OES
|
||||
|| type == GL_UNSIGNED_INT_2_10_10_10_REV);
|
||||
|| (ctx->Extensions.EXT_texture_type_2_10_10_10_REV &&
|
||||
type == GL_UNSIGNED_INT_2_10_10_10_REV));
|
||||
break;
|
||||
|
||||
case GL_DEPTH_COMPONENT:
|
||||
|
@@ -4151,6 +4151,7 @@ struct gl_extensions
|
||||
GLboolean EXT_texture_sRGB;
|
||||
GLboolean EXT_texture_sRGB_decode;
|
||||
GLboolean EXT_texture_swizzle;
|
||||
GLboolean EXT_texture_type_2_10_10_10_REV;
|
||||
GLboolean EXT_transform_feedback;
|
||||
GLboolean EXT_timer_query;
|
||||
GLboolean EXT_vertex_array_bgra;
|
||||
|
@@ -774,6 +774,11 @@ void st_init_extensions(struct pipe_screen *screen,
|
||||
PIPE_FORMAT_B8G8R8A8_SRGB },
|
||||
GL_TRUE }, /* at least one format must be supported */
|
||||
|
||||
{ { o(EXT_texture_type_2_10_10_10_REV) },
|
||||
{ PIPE_FORMAT_R10G10B10A2_UNORM,
|
||||
PIPE_FORMAT_B10G10R10A2_UNORM },
|
||||
GL_TRUE }, /* at least one format must be supported */
|
||||
|
||||
{ { o(ATI_texture_compression_3dc) },
|
||||
{ PIPE_FORMAT_LATC2_UNORM } },
|
||||
|
||||
|
Reference in New Issue
Block a user