mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 09:20:13 +01:00
mesa/clear: update ClearBufferfv error handling for GL 4.5 spec
This fixes dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.clear_bufferfv and brings the logic up to spec with GL 4.5 Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
3a0051bea9
commit
a663aa2a37
1 changed files with 6 additions and 19 deletions
|
|
@ -543,26 +543,13 @@ _mesa_ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value)
|
|||
}
|
||||
}
|
||||
break;
|
||||
case GL_STENCIL:
|
||||
/* Page 264 (page 280 of the PDF) of the OpenGL 3.0 spec says:
|
||||
*
|
||||
* "The result of ClearBuffer is undefined if no conversion between
|
||||
* the type of the specified value and the type of the buffer being
|
||||
* cleared is defined (for example, if ClearBufferiv is called for a
|
||||
* fixed- or floating-point buffer, or if ClearBufferfv is called
|
||||
* for a signed or unsigned integer buffer). This is not an error."
|
||||
*
|
||||
* In this case we take "undefined" and "not an error" to mean "ignore."
|
||||
* Note that we still need to generate an error for the invalid
|
||||
* drawbuffer case (see the GL_DEPTH case above).
|
||||
*/
|
||||
if (drawbuffer != 0) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glClearBufferfv(drawbuffer=%d)",
|
||||
drawbuffer);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
default:
|
||||
/* Page 498 of the PDF, section '17.4.3.1 Clearing Individual Buffers'
|
||||
* of the OpenGL 4.5 spec states:
|
||||
*
|
||||
* "An INVALID_ENUM error is generated by ClearBufferfv and
|
||||
* ClearNamedFramebufferfv if buffer is not COLOR or DEPTH."
|
||||
*/
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glClearBufferfv(buffer=%s)",
|
||||
_mesa_enum_to_string(buffer));
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue