case PIPE_FORMAT_RGTC1_UNORM:
case PIPE_FORMAT_RGTC2_UNORM:
case PIPE_FORMAT_ETC1_RGB8:
+ case PIPE_FORMAT_BPTC_RGBA_UNORM:
dst_glformat = GL_RGBA8;
break;
case PIPE_FORMAT_RGTC1_SNORM:
goto fallback;
dst_glformat = GL_RGBA8_SNORM;
break;
- /* TODO: for BPTC_*FLOAT, set RGBA32F and check for ARB_texture_float */
+ case PIPE_FORMAT_BPTC_RGB_FLOAT:
+ case PIPE_FORMAT_BPTC_RGB_UFLOAT:
+ if (!ctx->Extensions.ARB_texture_float)
+ goto fallback;
+ dst_glformat = GL_RGBA32F;
+ break;
default:
assert(0);
goto fallback;
PIPE_FORMAT_DXT3_RGBA,
PIPE_FORMAT_DXT5_RGBA } },
+ { { o(ARB_texture_compression_bptc) },
+ { PIPE_FORMAT_BPTC_RGBA_UNORM,
+ PIPE_FORMAT_BPTC_SRGBA,
+ PIPE_FORMAT_BPTC_RGB_FLOAT,
+ PIPE_FORMAT_BPTC_RGB_UFLOAT } },
+
{ { o(EXT_texture_shared_exponent) },
{ PIPE_FORMAT_R9G9B9E5_FLOAT } },
case MESA_FORMAT_ETC1_RGB8:
return st->has_etc1 ? PIPE_FORMAT_ETC1_RGB8 : PIPE_FORMAT_R8G8B8A8_UNORM;
+ case MESA_FORMAT_BPTC_RGBA_UNORM:
+ return PIPE_FORMAT_BPTC_RGBA_UNORM;
+ case MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM:
+ return PIPE_FORMAT_BPTC_SRGBA;
+ case MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT:
+ return PIPE_FORMAT_BPTC_RGB_FLOAT;
+ case MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT:
+ return PIPE_FORMAT_BPTC_RGB_UFLOAT;
+
/* signed normalized formats */
case MESA_FORMAT_R_SNORM8:
return PIPE_FORMAT_R8_SNORM;
case PIPE_FORMAT_ETC1_RGB8:
return MESA_FORMAT_ETC1_RGB8;
+ case PIPE_FORMAT_BPTC_RGBA_UNORM:
+ return MESA_FORMAT_BPTC_RGBA_UNORM;
+ case PIPE_FORMAT_BPTC_SRGBA:
+ return MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM;
+ case PIPE_FORMAT_BPTC_RGB_FLOAT:
+ return MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT;
+ case PIPE_FORMAT_BPTC_RGB_UFLOAT:
+ return MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT;
+
/* signed normalized formats */
case PIPE_FORMAT_R8_SNORM:
return MESA_FORMAT_R_SNORM8;
{ PIPE_FORMAT_ETC1_RGB8, 0 }
},
+ /* BPTC */
+ {
+ { GL_COMPRESSED_RGBA_BPTC_UNORM, 0 },
+ { PIPE_FORMAT_BPTC_RGBA_UNORM, 0 },
+ },
+ {
+ { GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM, 0 },
+ { PIPE_FORMAT_BPTC_SRGBA, 0 },
+ },
+ {
+ { GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT, 0 },
+ { PIPE_FORMAT_BPTC_RGB_FLOAT, 0 },
+ },
+ {
+ { GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT, 0 },
+ { PIPE_FORMAT_BPTC_RGB_UFLOAT, 0 },
+ },
+
/* signed/unsigned integer formats.
*/
{