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]
}
if (format_desc->layout == UTIL_FORMAT_LAYOUT_ASTC ||
}
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;
}
/* Software decoding is not hooked up. */
return false;
}
case PIPE_FORMAT_ASTC_12x10:
case PIPE_FORMAT_ASTC_12x12:
case PIPE_FORMAT_BPTC_RGBA_UNORM:
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:
dst_glformat = GL_RGBA8;
break;
case PIPE_FORMAT_RGTC1_SNORM:
PIPE_FORMAT_BPTC_RGB_FLOAT,
PIPE_FORMAT_BPTC_RGB_UFLOAT } },
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,
{ { o(KHR_texture_compression_astc_ldr),
o(KHR_texture_compression_astc_sliced_3d) },
{ PIPE_FORMAT_ASTC_4x4,
{ PIPE_FORMAT_DXT5_RGBA, 0 }
},
{ PIPE_FORMAT_DXT5_RGBA, 0 }
},
{
{ GL_COMPRESSED_RGB_FXT1_3DFX, 0 },
{
{ GL_COMPRESSED_RGB_FXT1_3DFX, 0 },
- { PIPE_FORMAT_RGB_FXT1, 0 }
+ { PIPE_FORMAT_FXT1_RGB, 0 }
},
{
{ GL_COMPRESSED_RGBA_FXT1_3DFX, 0 },
},
{
{ GL_COMPRESSED_RGBA_FXT1_3DFX, 0 },
- { PIPE_FORMAT_RGBA_FXT1, 0 }
+ { PIPE_FORMAT_FXT1_RGBA, 0 }
case UTIL_FORMAT_LAYOUT_BPTC:
case UTIL_FORMAT_LAYOUT_ASTC:
case UTIL_FORMAT_LAYOUT_ATC:
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:
/* XXX add other formats in the future */
return TRUE;
default: