Mesa (master): mesa: Use ctx->ReadBuffer in glReadBuffer back-to-front tests

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 15 23:08:21 UTC 2019


Module: Mesa
Branch: master
Commit: d947276b4acc0b4ebb2745cbde82f7b2ccf11a4a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d947276b4acc0b4ebb2745cbde82f7b2ccf11a4a

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Mon Oct 14 09:58:57 2019 -0700

mesa: Use ctx->ReadBuffer in glReadBuffer back-to-front tests

We were looking at ctx->DrawBuffer when asking about the read buffer,
which was good enough for CTS purposes, but definitely not right.

Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg at google.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/mesa/main/buffers.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c
index a47438920b4..f6a347911c7 100644
--- a/src/mesa/main/buffers.c
+++ b/src/mesa/main/buffers.c
@@ -86,7 +86,8 @@ supported_buffer_bitmask(const struct gl_context *ctx,
 }
 
 static GLenum
-back_to_front_if_single_buffered(const struct gl_context *ctx, GLenum buffer)
+back_to_front_if_single_buffered(const struct gl_framebuffer *fb,
+                                 GLenum buffer)
 {
    /* If the front buffer is the only buffer, GL_BACK and all other flags
     * that include BACK select the front buffer for drawing. There are
@@ -110,7 +111,7 @@ back_to_front_if_single_buffered(const struct gl_context *ctx, GLenum buffer)
     *    but they are front buffers from the Mesa point of view,
     *    because they are always single buffered.
     */
-   if (!ctx->DrawBuffer->Visual.doubleBufferMode) {
+   if (!fb->Visual.doubleBufferMode) {
       switch (buffer) {
       case GL_BACK:
          buffer = GL_FRONT;
@@ -135,7 +136,7 @@ back_to_front_if_single_buffered(const struct gl_context *ctx, GLenum buffer)
 static GLbitfield
 draw_buffer_enum_to_bitmask(const struct gl_context *ctx, GLenum buffer)
 {
-   buffer = back_to_front_if_single_buffered(ctx, buffer);
+   buffer = back_to_front_if_single_buffered(ctx->DrawBuffer, buffer);
 
    switch (buffer) {
       case GL_NONE:
@@ -200,7 +201,7 @@ draw_buffer_enum_to_bitmask(const struct gl_context *ctx, GLenum buffer)
 static gl_buffer_index
 read_buffer_enum_to_index(const struct gl_context *ctx, GLenum buffer)
 {
-   buffer = back_to_front_if_single_buffered(ctx, buffer);
+   buffer = back_to_front_if_single_buffered(ctx->ReadBuffer, buffer);
 
    switch (buffer) {
       case GL_FRONT:




More information about the mesa-commit mailing list