mesa: Check that draw buffers are valid for glDrawBuffers on GLES3
Section 4.2 (Whole Framebuffer Operations) of the OpenGL 3.0 specification
says:
"Each buffer listed in bufs must be BACK, NONE, or one of the values from
table 4.3 (NONE, COLOR_ATTACHMENTi)".
Fixes 1 dEQP test:
* dEQP-GLES3.functional.negative_api.buffer.draw_buffers
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
committed by
Samuel Iglesias Gonsalvez
parent
fe1e89a026
commit
097b933b55
@@ -336,6 +336,20 @@ _mesa_DrawBuffers(GLsizei n, const GLenum *buffers)
|
||||
|
||||
/* complicated error checking... */
|
||||
for (output = 0; output < n; output++) {
|
||||
/* Section 4.2 (Whole Framebuffer Operations) of the OpenGL 3.0
|
||||
* specification says:
|
||||
*
|
||||
* "Each buffer listed in bufs must be BACK, NONE, or one of the values
|
||||
* from table 4.3 (NONE, COLOR_ATTACHMENTi)"
|
||||
*/
|
||||
if (_mesa_is_gles3(ctx) && buffers[output] != GL_NONE &&
|
||||
buffers[output] != GL_BACK &&
|
||||
(buffers[output] < GL_COLOR_ATTACHMENT0 ||
|
||||
buffers[output] >= GL_COLOR_ATTACHMENT0 + ctx->Const.MaxColorAttachments)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glDrawBuffers(buffer)");
|
||||
return;
|
||||
}
|
||||
|
||||
if (buffers[output] == GL_NONE) {
|
||||
destMask[output] = 0x0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user