[Mesa-dev] [PATCH 02/11] mesa: Remove extension checking from ChooseTexFormat.
Eric Anholt
eric at anholt.net
Tue Apr 16 17:21:14 PDT 2013
This should already be handled by _mesa_base_tex_format() calls in
TexImage*.
---
NOTE!
I've replaced the actual patch full of unindentation of code described by:
src/mesa/main/texformat.c | 1184 ++++++++++++++++++++-------------------------
1 file changed, 533 insertions(+), 651 deletions(-)
with the git show -b output so that someone can actually review it.
If you want to apply the series, please just use the "formats" branch
of my tree.
diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
index ecf8fec..45497c1 100644
--- a/src/mesa/main/texformat.c
+++ b/src/mesa/main/texformat.c
@@ -207,12 +207,6 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_I8);
break;
- default:
- ; /* fallthrough */
- }
-
- if (ctx->Extensions.ARB_depth_texture) {
- switch (internalFormat) {
case GL_DEPTH_COMPONENT:
case GL_DEPTH_COMPONENT24:
case GL_DEPTH_COMPONENT32:
@@ -224,12 +218,7 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_Z16);
RETURN_IF_SUPPORTED(MESA_FORMAT_X8_Z24);
RETURN_IF_SUPPORTED(MESA_FORMAT_S8_Z24);
- default:
- ; /* fallthrough */
- }
- }
- switch (internalFormat) {
case GL_COMPRESSED_ALPHA_ARB:
RETURN_IF_SUPPORTED(MESA_FORMAT_A8);
break;
@@ -273,28 +262,17 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888);
RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
break;
- default:
- ; /* fallthrough */
- }
- if (ctx->Extensions.ARB_ES2_compatibility) {
- switch (internalFormat) {
case GL_RGB565:
RETURN_IF_SUPPORTED(MESA_FORMAT_RGB565);
break;
- default:
- ; /* fallthrough */
- }
- }
- if (ctx->Extensions.MESA_ycbcr_texture) {
- if (internalFormat == GL_YCBCR_MESA) {
+ case GL_YCBCR_MESA:
if (type == GL_UNSIGNED_SHORT_8_8_MESA)
RETURN_IF_SUPPORTED(MESA_FORMAT_YCBCR);
else
RETURN_IF_SUPPORTED(MESA_FORMAT_YCBCR_REV);
- }
- }
+ break;
/* For non-generic compressed format we assert two things:
*
@@ -304,7 +282,6 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
* 2. The driver only enables the extension if it supports all of the
* formats that are part of that extension.
*/
- switch (internalFormat) {
case GL_COMPRESSED_RGB_FXT1_3DFX:
return MESA_FORMAT_RGB_FXT1;
case GL_COMPRESSED_RGBA_FXT1_3DFX:
@@ -369,12 +346,7 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
return MESA_FORMAT_SRGBA_DXT3;
case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
return MESA_FORMAT_SRGBA_DXT5;
- default:
- ; /* fallthrough */
- }
- if (ctx->Extensions.ARB_texture_float) {
- switch (internalFormat) {
case GL_ALPHA16F_ARB:
RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_FLOAT16);
RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_FLOAT32);
@@ -445,69 +417,35 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT32);
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);
break;
- default:
- ; /* fallthrough */
- }
- }
- if (ctx->Extensions.EXT_texture_shared_exponent) {
- switch (internalFormat) {
case GL_RGB9_E5:
+ /* GL_EXT_texture_shared_exponent -- just one format to support */
ASSERT(ctx->TextureFormatSupported[MESA_FORMAT_RGB9_E5_FLOAT]);
return MESA_FORMAT_RGB9_E5_FLOAT;
- default:
- ; /* fallthrough */
- }
- }
- if (ctx->Extensions.EXT_packed_float) {
- switch (internalFormat) {
case GL_R11F_G11F_B10F:
+ /* GL_EXT_texture_packed_float -- just one format to support */
ASSERT(ctx->TextureFormatSupported[MESA_FORMAT_R11_G11_B10_FLOAT]);
return MESA_FORMAT_R11_G11_B10_FLOAT;
- default:
- ; /* fallthrough */
- }
- }
- if (ctx->Extensions.EXT_packed_depth_stencil) {
- switch (internalFormat) {
case GL_DEPTH_STENCIL_EXT:
case GL_DEPTH24_STENCIL8_EXT:
RETURN_IF_SUPPORTED(MESA_FORMAT_Z24_S8);
RETURN_IF_SUPPORTED(MESA_FORMAT_S8_Z24);
break;
- default:
- ; /* fallthrough */
- }
- }
- if (ctx->Extensions.ARB_depth_buffer_float) {
- switch (internalFormat) {
case GL_DEPTH_COMPONENT32F:
ASSERT(ctx->TextureFormatSupported[MESA_FORMAT_Z32_FLOAT]);
return MESA_FORMAT_Z32_FLOAT;
case GL_DEPTH32F_STENCIL8:
ASSERT(ctx->TextureFormatSupported[MESA_FORMAT_Z32_FLOAT_X24S8]);
return MESA_FORMAT_Z32_FLOAT_X24S8;
- default:
- ; /* fallthrough */
- }
- }
- if (ctx->Extensions.ATI_envmap_bumpmap) {
- switch (internalFormat) {
case GL_DUDV_ATI:
case GL_DU8DV8_ATI:
RETURN_IF_SUPPORTED(MESA_FORMAT_DUDV8);
break;
- default:
- ; /* fallthrough */
- }
- }
- if (ctx->Extensions.EXT_texture_snorm) {
- switch (internalFormat) {
case GL_RED_SNORM:
case GL_R8_SNORM:
RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_R8);
@@ -586,13 +524,7 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGBA8888);
RETURN_IF_SUPPORTED(MESA_FORMAT_SIGNED_RGBA8888_REV);
break;
- default:
- ; /* fall-through */
- }
- }
- if (ctx->Extensions.EXT_texture_sRGB) {
- switch (internalFormat) {
case GL_SRGB_EXT:
case GL_SRGB8_EXT:
RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB8);
@@ -622,24 +554,16 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
break;
case GL_COMPRESSED_SRGB_EXT:
- if (ctx->Extensions.EXT_texture_compression_s3tc)
RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB_DXT1);
RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB8);
RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
break;
case GL_COMPRESSED_SRGB_ALPHA_EXT:
- if (ctx->Extensions.EXT_texture_compression_s3tc)
RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT3); /* Not srgba_dxt1, see spec */
RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA8);
RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
break;
- default:
- ; /* fallthrough */
- }
- }
- if (ctx->Extensions.EXT_texture_integer) {
- switch (internalFormat) {
case GL_ALPHA8UI_EXT:
RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_UINT8);
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8);
@@ -736,12 +660,7 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_INT32);
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
break;
- }
- }
- if (ctx->Version >= 30 ||
- ctx->Extensions.EXT_texture_integer) {
- switch (internalFormat) {
case GL_RGB8UI_EXT:
RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_UINT8);
RETURN_IF_SUPPORTED(MESA_FORMAT_XBGR8888_UINT);
@@ -790,11 +709,7 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
case GL_RGBA32I_EXT:
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
break;
- }
- }
- if (ctx->Extensions.ARB_texture_rg) {
- switch (internalFormat) {
case GL_R8:
case GL_RED:
RETURN_IF_SUPPORTED(MESA_FORMAT_R8);
@@ -825,13 +740,6 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_GR1616);
break;
- default:
- ; /* fallthrough */
- }
- }
-
- if (ctx->Extensions.ARB_texture_rg && ctx->Extensions.ARB_texture_float) {
- switch (internalFormat) {
case GL_R16F:
RETURN_IF_SUPPORTED(MESA_FORMAT_R_FLOAT16);
RETURN_IF_SUPPORTED(MESA_FORMAT_RG_FLOAT16);
@@ -861,15 +769,6 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_FLOAT16);
break;
- default:
- ; /* fallthrough */
- }
- }
-
- if (ctx->Version >= 30 ||
- (ctx->Extensions.ARB_texture_rg &&
- ctx->Extensions.EXT_texture_integer)) {
- switch (internalFormat) {
case GL_R8UI:
RETURN_IF_SUPPORTED(MESA_FORMAT_R_UINT8);
break;
@@ -906,32 +805,15 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
case GL_RG32I:
RETURN_IF_SUPPORTED(MESA_FORMAT_RG_INT32);
break;
- default:
- break;
- }
- }
- if (ctx->Extensions.ARB_texture_rgb10_a2ui) {
- switch (internalFormat) {
case GL_RGB10_A2UI:
RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB2101010_UINT);
RETURN_IF_SUPPORTED(MESA_FORMAT_ABGR2101010_UINT);
break;
- default:
- break;
- }
- }
- /* GL_BGRA can be an internal format *only* in OpenGL ES (1.x or 2.0).
- */
- if (_mesa_is_gles(ctx)) {
- switch (internalFormat) {
+
case GL_BGRA:
RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888);
break;
-
- default:
- ; /* fallthrough */
- }
}
_mesa_problem(ctx, "unexpected format %s in _mesa_choose_tex_format()",
More information about the mesa-dev
mailing list