On Wed, Sep 16, 2015 at 10:15 AM, Nanley Chery <nanleych...@gmail.com> wrote:
> > > On Tue, Sep 15, 2015 at 3:01 PM, Anuj Phogat <anuj.pho...@gmail.com> > wrote: > >> >> >> On Fri, Aug 28, 2015 at 7:50 AM, Nanley Chery <nanleych...@gmail.com> >> wrote: >> >>> From: Nanley Chery <nanley.g.ch...@intel.com> >>> >>> Reuse utility functions instead of reimplementing the same logic. >>> >>> * _mesa_is_compressed_format() performs the required checking to >>> determine format support in the current context. >>> * _mesa_gl_compressed_format_base_format() returns the base format. >>> >>> Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com> >>> --- >>> src/mesa/main/teximage.c | 150 >>> ++--------------------------------------------- >>> 1 file changed, 5 insertions(+), 145 deletions(-) >>> >>> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c >>> index 39d1281..8913a72 100644 >>> --- a/src/mesa/main/teximage.c >>> +++ b/src/mesa/main/teximage.c >>> @@ -252,44 +252,11 @@ _mesa_base_tex_format( struct gl_context *ctx, >>> GLint internalFormat ) >>> ; /* fallthrough */ >>> } >>> >>> - if (ctx->Extensions.TDFX_texture_compression_FXT1) { >>> - switch (internalFormat) { >>> - case GL_COMPRESSED_RGB_FXT1_3DFX: >>> - return GL_RGB; >>> - case GL_COMPRESSED_RGBA_FXT1_3DFX: >>> - return GL_RGBA; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> - } >>> - >>> - /* Assume that the ANGLE flag will always be set if the EXT flag is >>> set. >>> - */ >>> - if (ctx->Extensions.ANGLE_texture_compression_dxt) { >>> - switch (internalFormat) { >>> - case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: >>> - return GL_RGB; >>> - case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: >>> - case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT: >>> - case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: >>> - return GL_RGBA; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> - } >>> - >>> - if (_mesa_is_desktop_gl(ctx) >>> - && ctx->Extensions.ANGLE_texture_compression_dxt) { >>> - switch (internalFormat) { >>> - case GL_RGB_S3TC: >>> - case GL_RGB4_S3TC: >>> - return GL_RGB; >>> - case GL_RGBA_S3TC: >>> - case GL_RGBA4_S3TC: >>> - return GL_RGBA; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> + if (_mesa_is_compressed_format(ctx, internalFormat)) { >>> + GLenum base_compressed = >>> + _mesa_gl_compressed_format_base_format(internalFormat); >>> + if (base_compressed) >>> + return base_compressed; >>> } >>> >>> if (ctx->Extensions.MESA_ycbcr_texture) { >>> @@ -367,16 +334,10 @@ _mesa_base_tex_format( struct gl_context *ctx, >>> GLint internalFormat ) >>> case GL_SRGB8_EXT: >>> case GL_COMPRESSED_SRGB_EXT: >>> return GL_RGB; >>> - case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT: >>> - return ctx->Extensions.EXT_texture_compression_s3tc ? GL_RGB : >>> -1; >>> case GL_SRGB_ALPHA_EXT: >>> case GL_SRGB8_ALPHA8_EXT: >>> case GL_COMPRESSED_SRGB_ALPHA_EXT: >>> return GL_RGBA; >>> - case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: >>> - case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: >>> - case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: >>> - return ctx->Extensions.EXT_texture_compression_s3tc ? GL_RGBA >>> : -1; >>> case GL_SLUMINANCE_ALPHA_EXT: >>> case GL_SLUMINANCE8_ALPHA8_EXT: >>> case GL_COMPRESSED_SLUMINANCE_ALPHA_EXT: >>> @@ -521,111 +482,10 @@ _mesa_base_tex_format( struct gl_context *ctx, >>> GLint internalFormat ) >>> } >>> } >>> >>> - if (ctx->Extensions.ARB_texture_compression_rgtc) { >>> - switch (internalFormat) { >>> - case GL_COMPRESSED_RED_RGTC1: >>> - case GL_COMPRESSED_SIGNED_RED_RGTC1: >>> - return GL_RED; >>> - case GL_COMPRESSED_RG_RGTC2: >>> - case GL_COMPRESSED_SIGNED_RG_RGTC2: >>> - return GL_RG; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> - } >>> - >>> - if (_mesa_is_desktop_gl(ctx) && >>> - ctx->Extensions.EXT_texture_compression_latc) { >>> - switch (internalFormat) { >>> - case GL_COMPRESSED_LUMINANCE_LATC1_EXT: >>> - case GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT: >>> - return GL_LUMINANCE; >>> - case GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT: >>> - case GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT: >>> - return GL_LUMINANCE_ALPHA; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> - } >>> - >>> - if (_mesa_is_desktop_gl(ctx) && >>> - ctx->Extensions.ATI_texture_compression_3dc) { >>> - switch (internalFormat) { >>> - case GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI: >>> - return GL_LUMINANCE_ALPHA; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> - } >>> - >>> - if (_mesa_is_gles(ctx) && >>> - ctx->Extensions.OES_compressed_ETC1_RGB8_texture) { >>> - switch (internalFormat) { >>> - case GL_ETC1_RGB8_OES: >>> - return GL_RGB; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> - } >>> - >>> if (ctx->Extensions.KHR_texture_compression_astc_ldr && >>> _mesa_is_astc_format(internalFormat)) >>> return GL_RGBA; >>> >>> - if (_mesa_is_gles3(ctx) || ctx->Extensions.ARB_ES3_compatibility) { >>> - switch (internalFormat) { >>> - case GL_COMPRESSED_RGB8_ETC2: >>> - case GL_COMPRESSED_SRGB8_ETC2: >>> - return GL_RGB; >>> - case GL_COMPRESSED_RGBA8_ETC2_EAC: >>> - case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: >>> - case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: >>> - case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: >>> - return GL_RGBA; >>> - case GL_COMPRESSED_R11_EAC: >>> - case GL_COMPRESSED_SIGNED_R11_EAC: >>> - return GL_RED; >>> - case GL_COMPRESSED_RG11_EAC: >>> - case GL_COMPRESSED_SIGNED_RG11_EAC: >>> - return GL_RG; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> - } >>> - >>> - if (_mesa_is_desktop_gl(ctx) && >>> - ctx->Extensions.ARB_texture_compression_bptc) { >>> - switch (internalFormat) { >>> - case GL_COMPRESSED_RGBA_BPTC_UNORM: >>> - case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: >>> - return GL_RGBA; >>> - case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: >>> - case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: >>> - return GL_RGB; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> - } >>> - >>> - if (ctx->API == API_OPENGLES) { >>> - switch (internalFormat) { >>> - case GL_PALETTE4_RGB8_OES: >>> - case GL_PALETTE4_R5_G6_B5_OES: >>> - case GL_PALETTE8_RGB8_OES: >>> - case GL_PALETTE8_R5_G6_B5_OES: >>> - return GL_RGB; >>> - case GL_PALETTE4_RGBA8_OES: >>> - case GL_PALETTE8_RGB5_A1_OES: >>> - case GL_PALETTE4_RGBA4_OES: >>> - case GL_PALETTE4_RGB5_A1_OES: >>> - case GL_PALETTE8_RGBA8_OES: >>> - case GL_PALETTE8_RGBA4_OES: >>> - return GL_RGBA; >>> - default: >>> - ; /* fallthrough */ >>> - } >>> - } >>> - >>> return -1; /* error */ >>> } >>> >>> -- >>> 2.5.0 >>> >>> _______________________________________________ >>> mesa-dev mailing list >>> mesa-dev@lists.freedesktop.org >>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev >>> >> >> Nice cleanup Nanley. >> >> > Thanks! > I see no piglit regressions due to applying this patch series. I plan to include a note about a side effect that occurs with this patch: In agreement with our extension table and the glext headers, we now check that we're in a desktop context when determining support for the FXT1 and RGTC formats.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev