st/mesa: Add GL_TDFX_texture_compression_FXT1 support
Eric recently added PIPE_FORMAT_FXT1_RGB[A] as part of his format unification work. This was really most of the work of implementing the extension. We just need to handle it in a couple of places and expose the extension. v2: Reject the new formats in llvmpipe_is_format_supported to prevent crashes because it doesn't know how to handle the new formats. Reviewed-by: Marek Olšák <marek.olsak@amd.com> [v1] Reviewed-by: Eric Anholt <eric@anholt.net> [v1]
This commit is contained in:
parent
3e21e17b2f
commit
1bdd342b60
|
@ -665,7 +665,8 @@ llvmpipe_is_format_supported( struct pipe_screen *_screen,
|
|||
}
|
||||
|
||||
if (format_desc->layout == UTIL_FORMAT_LAYOUT_ASTC ||
|
||||
format_desc->layout == UTIL_FORMAT_LAYOUT_ATC) {
|
||||
format_desc->layout == UTIL_FORMAT_LAYOUT_ATC ||
|
||||
format_desc->layout == UTIL_FORMAT_LAYOUT_FXT1) {
|
||||
/* Software decoding is not hooked up. */
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -2046,6 +2046,8 @@ st_GetTexSubImage(struct gl_context * ctx,
|
|||
case PIPE_FORMAT_ASTC_12x10:
|
||||
case PIPE_FORMAT_ASTC_12x12:
|
||||
case PIPE_FORMAT_BPTC_RGBA_UNORM:
|
||||
case PIPE_FORMAT_FXT1_RGB:
|
||||
case PIPE_FORMAT_FXT1_RGBA:
|
||||
dst_glformat = GL_RGBA8;
|
||||
break;
|
||||
case PIPE_FORMAT_RGTC1_SNORM:
|
||||
|
|
|
@ -877,6 +877,10 @@ void st_init_extensions(struct pipe_screen *screen,
|
|||
PIPE_FORMAT_BPTC_RGB_FLOAT,
|
||||
PIPE_FORMAT_BPTC_RGB_UFLOAT } },
|
||||
|
||||
{ { o(TDFX_texture_compression_FXT1) },
|
||||
{ PIPE_FORMAT_FXT1_RGB,
|
||||
PIPE_FORMAT_FXT1_RGBA } },
|
||||
|
||||
{ { o(KHR_texture_compression_astc_ldr),
|
||||
o(KHR_texture_compression_astc_sliced_3d) },
|
||||
{ PIPE_FORMAT_ASTC_4x4,
|
||||
|
|
|
@ -332,16 +332,14 @@ static const struct format_mapping format_map[] = {
|
|||
{ PIPE_FORMAT_DXT5_RGBA, 0 }
|
||||
},
|
||||
|
||||
#if 0
|
||||
{
|
||||
{ GL_COMPRESSED_RGB_FXT1_3DFX, 0 },
|
||||
{ PIPE_FORMAT_RGB_FXT1, 0 }
|
||||
{ PIPE_FORMAT_FXT1_RGB, 0 }
|
||||
},
|
||||
{
|
||||
{ GL_COMPRESSED_RGBA_FXT1_3DFX, 0 },
|
||||
{ PIPE_FORMAT_RGBA_FXT1, 0 }
|
||||
{ PIPE_FORMAT_FXT1_RGBA, 0 }
|
||||
},
|
||||
#endif
|
||||
|
||||
/* Depth formats */
|
||||
{
|
||||
|
|
|
@ -495,6 +495,7 @@ util_format_is_compressed(enum pipe_format format)
|
|||
case UTIL_FORMAT_LAYOUT_BPTC:
|
||||
case UTIL_FORMAT_LAYOUT_ASTC:
|
||||
case UTIL_FORMAT_LAYOUT_ATC:
|
||||
case UTIL_FORMAT_LAYOUT_FXT1:
|
||||
/* XXX add other formats in the future */
|
||||
return TRUE;
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue