mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 20:28:04 +02:00
mesa: check draw buffer completeness on glClearBufferfv/glClearBufferuiv
From OpenGL 4.6, section 9.4.4 "Effects of Framebuffer Completeness on Framebuffer Operations", page 332: "An INVALID_FRAMEBUFFER_OPERATION error is generated by attempts to render to or read from a framebuffer which is not framebuffer complete. This error is generated regardless of whether fragments are actually read from or written to the framebuffer. For example, it is generated when a rendering command is called and the framebuffer is incomplete, even if RASTERIZER_DISCARD is enabled." Signed-off-by: Dmytro Nester <dmytro.nester@globallogic.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4833>
This commit is contained in:
parent
f1a40a26a9
commit
58bb817257
1 changed files with 12 additions and 0 deletions
|
|
@ -467,6 +467,12 @@ clear_bufferuiv(struct gl_context *ctx, GLenum buffer, GLint drawbuffer,
|
|||
_mesa_update_state( ctx );
|
||||
}
|
||||
|
||||
if (!no_error && ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE) {
|
||||
_mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION,
|
||||
"glClearBufferuiv(incomplete framebuffer)");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (buffer) {
|
||||
case GL_COLOR:
|
||||
{
|
||||
|
|
@ -555,6 +561,12 @@ clear_bufferfv(struct gl_context *ctx, GLenum buffer, GLint drawbuffer,
|
|||
_mesa_update_state( ctx );
|
||||
}
|
||||
|
||||
if (!no_error && ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE) {
|
||||
_mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION,
|
||||
"glClearBufferfv(incomplete framebuffer)");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (buffer) {
|
||||
case GL_DEPTH:
|
||||
/* Page 264 (page 280 of the PDF) of the OpenGL 3.0 spec says:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue