mesa: Fix extension dependency for half-float TexBOs

Half-float TexBOs should require both GL_ARB_half_float_pixel and
GL_ARB_texture_float.  This doesn't matter much in practice.  Every
driver that supports GL_ARB_texture_buffer_object already supports
GL_ARB_half_float_pixel.  We only expose the TexBO extension in core
profiles, and those require GL_ARB_texture_float.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Ian Romanick 2014-01-13 15:18:23 -08:00 committed by Eric Anholt
parent 54b1082828
commit 6d6a290181

View File

@ -4186,7 +4186,18 @@ _mesa_validate_texbuffer_format(const struct gl_context *ctx,
if (datatype == GL_FLOAT && !ctx->Extensions.ARB_texture_float)
return MESA_FORMAT_NONE;
if (datatype == GL_HALF_FLOAT && !ctx->Extensions.ARB_half_float_pixel)
/* The GL_ARB_texture_buffer_object spec says:
*
* "If ARB_texture_float is not supported, references to the
* floating-point internal formats provided by that extension should be
* removed, and such formats may not be passed to TexBufferARB."
*
* As a result, GL_HALF_FLOAT internal format depends on both
* GL_ARB_texture_float and GL_ARB_half_float_pixel.
*/
if (datatype == GL_HALF_FLOAT &&
!(ctx->Extensions.ARB_half_float_pixel
&& ctx->Extensions.ARB_texture_float))
return MESA_FORMAT_NONE;
if (!ctx->Extensions.ARB_texture_rg) {