[Mesa-dev] [PATCH] mesa: Allow glReadBuffer(GL_NONE) for winsys framebuffers.

Ian Romanick idr at freedesktop.org
Wed Dec 19 16:36:27 PST 2012


On 12/19/2012 01:07 PM, Paul Berry wrote:
> Previously, Mesa code assumed that glReadBuffer(GL_NONE) was only
> valid for user-created framebuffer objects.  However, the spec is
> quite clear that is should also be valid for the default framebuffer.
>  From section 18.2.1 ("Obtaining Pixels from the Framebuffer") of the
> GL 4.3 spec:
>
>      "When READ_FRAMEBUFFER_BINDING is zero, i.e. the default
>      framebuffer, src must be one of the values listed in table 17.4,
>      including NONE."
>
> Similar language exists in the GLES 3.0 spec, and in desktop GL all
> the way back to ARB_framebuffer_object.
>
> Partially fixes GLES3 conformance test "CoverageES30.test".

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

Candidate for stable branches?

> ---
>   src/mesa/main/buffers.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c
> index 76f0d46..d10a573 100644
> --- a/src/mesa/main/buffers.c
> +++ b/src/mesa/main/buffers.c
> @@ -532,8 +532,8 @@ _mesa_ReadBuffer(GLenum buffer)
>      if (MESA_VERBOSE & VERBOSE_API)
>         _mesa_debug(ctx, "glReadBuffer %s\n", _mesa_lookup_enum_by_nr(buffer));
>
> -   if (_mesa_is_user_fbo(fb) && buffer == GL_NONE) {
> -      /* This is legal for user-created framebuffer objects */
> +   if (buffer == GL_NONE) {
> +      /* This is legal--it means that no buffer should be bound for reading. */
>         srcBuffer = -1;
>      }
>      else {
>



More information about the mesa-dev mailing list