[Mesa-dev] [PATCH v3] gles2: a stub implementation for GL_EXT_discard_framebuffer
Brian Paul
brianp at vmware.com
Mon Feb 18 07:20:37 PST 2013
On 02/18/2013 12:12 AM, Tapani Pälli wrote:
> This patch implements a stub for GL_EXT_discard_framebuffer with
> required checks listed by the extension specification. This extension
> is required by GLBenchmark 2.5 when compiled with OpenGL ES 2.0
> as the rendering backend.
>
> Signed-off-by: Tapani Pälli<tapani.palli at intel.com>
> ---
> src/mapi/glapi/gen/es_EXT.xml | 13 ++++++++
> src/mesa/drivers/common/driverfuncs.c | 1 +
> src/mesa/main/dd.h | 4 ++-
> src/mesa/main/extensions.c | 1 +
> src/mesa/main/fbobject.c | 54 +++++++++++++++++++++++++++++++++
> src/mesa/main/fbobject.h | 4 +++
> src/mesa/main/tests/dispatch_sanity.cpp | 2 ++
> 7 files changed, 78 insertions(+), 1 deletion(-)
Just a couple very minor nits.
> +void GLAPIENTRY
> +_mesa_DiscardFramebufferEXT(GLenum target, GLsizei numAttachments,
> + const GLenum *attachments)
> +{
> + struct gl_framebuffer *fb;
> + GLint i;
> +
> + GET_CURRENT_CONTEXT(ctx);
> +
> + fb = get_framebuffer_target(ctx, target);
> + if (!fb) {
> + _mesa_error(ctx, GL_INVALID_ENUM,
> + "glDiscardFramebufferEXT(target %s)",
> + _mesa_lookup_enum_by_nr(target));
> + return;
> + }
> +
> + if (numAttachments< 0) {
> + _mesa_error(ctx, GL_INVALID_VALUE,
> + "glDiscardFramebufferEXT(numAttachments< 0)");
> + return;
> + }
> +
> + for(i = 0; i< numAttachments; i++) {
> +
Please put a space in "for (" and you can remove the blank line
between 'for' and 'switch'.
> + switch (attachments[i]) {
> + case GL_COLOR:
> + case GL_DEPTH:
> + case GL_STENCIL:
> + if (_mesa_is_user_fbo(fb))
> + goto invalid_enum;
> + break;
> + case GL_COLOR_ATTACHMENT0:
> + case GL_DEPTH_ATTACHMENT:
> + case GL_STENCIL_ATTACHMENT:
> + if (_mesa_is_winsys_fbo(fb))
> + goto invalid_enum;
> + break;
> + default:
> + goto invalid_enum;
> + }
> + }
> +
> + if (ctx->Driver.DiscardFramebuffer)
> + ctx->Driver.DiscardFramebuffer(ctx, target, numAttachments, attachments);
> +
> + return;
> +
> +invalid_enum:
> + _mesa_error(ctx, GL_INVALID_ENUM,
> + "glDiscardFramebufferEXT(attachment %s)",
> + _mesa_lookup_enum_by_nr(attachments[i]));
> +}
Looks good otherwise.
Reviewed-by: Brian Paul <brianp at vmware.com>
More information about the mesa-dev
mailing list