Skip to content
Snippets Groups Projects
Commit 963311b7 authored by Nicolai Hähnle's avatar Nicolai Hähnle
Browse files

mesa/main: fix version/extension checks in _mesa_ClampColor


Add a proper check for feature support, and raise an invalid enum for
GL_CLAMP_VERTEX/FRAGMENT_COLOR unconditionally in core profiles, since
those enums were explicitly removed after the extension was promoted
to core functionality (not in the profile sense) with OpenGL 3.0.

This matches the behavior of the AMD closed source driver and fixes
GL45-CTS.gtf30.GL3Tests.half_float.half_float_textures.

Cc: "12.0 13.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
parent e1ea70d9
No related branches found
No related tags found
No related merge requests found
......@@ -861,6 +861,14 @@ _mesa_ClampColor(GLenum target, GLenum clamp)
{
GET_CURRENT_CONTEXT(ctx);
/* Check for both the extension and the GL version, since the Intel driver
* does not advertise the extension in core profiles.
*/
if (ctx->Version <= 30 && !ctx->Extensions.ARB_color_buffer_float) {
_mesa_error(ctx, GL_INVALID_OPERATION, "glClampColor()");
return;
}
if (clamp != GL_TRUE && clamp != GL_FALSE && clamp != GL_FIXED_ONLY_ARB) {
_mesa_error(ctx, GL_INVALID_ENUM, "glClampColorARB(clamp)");
return;
......@@ -868,19 +876,15 @@ _mesa_ClampColor(GLenum target, GLenum clamp)
switch (target) {
case GL_CLAMP_VERTEX_COLOR_ARB:
if (ctx->API == API_OPENGL_CORE &&
!ctx->Extensions.ARB_color_buffer_float) {
if (ctx->API == API_OPENGL_CORE)
goto invalid_enum;
}
FLUSH_VERTICES(ctx, _NEW_LIGHT);
ctx->Light.ClampVertexColor = clamp;
_mesa_update_clamp_vertex_color(ctx, ctx->DrawBuffer);
break;
case GL_CLAMP_FRAGMENT_COLOR_ARB:
if (ctx->API == API_OPENGL_CORE &&
!ctx->Extensions.ARB_color_buffer_float) {
if (ctx->API == API_OPENGL_CORE)
goto invalid_enum;
}
FLUSH_VERTICES(ctx, _NEW_FRAG_CLAMP);
ctx->Color.ClampFragmentColor = clamp;
_mesa_update_clamp_fragment_color(ctx, ctx->DrawBuffer);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment