From: Kenneth Graunke Date: Mon, 14 Oct 2019 16:58:57 +0000 (-0700) Subject: mesa: Use ctx->ReadBuffer in glReadBuffer back-to-front tests X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d947276b4acc0b4ebb2745cbde82f7b2ccf11a4a;p=mesa.git 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 Reviewed-by: Kristian H. Kristensen Reviewed-by: Marek Olšák --- 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: