From d947276b4acc0b4ebb2745cbde82f7b2ccf11a4a Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Mon, 14 Oct 2019 09:58:57 -0700 Subject: [PATCH] mesa: Use ctx->ReadBuffer in glReadBuffer back-to-front tests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Kristian H. Kristensen Reviewed-by: Marek Olšák --- 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: -- 2.30.2