From 0c7047ab9cbcc13ecaca9a4fda5073b8d3b7a7f5 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 3 Aug 2016 11:32:21 -0700 Subject: [PATCH] Revert "st/mesa: use sRGB formats for MSAA resolving if destination is sRGB" MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This reverts commit 4e549ddb500cf677b6fa16d9ebdfa67cc23da097, dropping the hack from Gallium that I just deleted from i965. See the previous commit for rationale. Reviewed-by: Nicolai Hähnle --- src/mesa/state_tracker/st_cb_blit.c | 32 ----------------------------- 1 file changed, 32 deletions(-) diff --git a/src/mesa/state_tracker/st_cb_blit.c b/src/mesa/state_tracker/st_cb_blit.c index 826152dc8e4..5e7c34cfc6b 100644 --- a/src/mesa/state_tracker/st_cb_blit.c +++ b/src/mesa/state_tracker/st_cb_blit.c @@ -45,34 +45,6 @@ #include "util/u_format.h" -static void -st_adjust_blit_for_msaa_resolve(struct pipe_blit_info *blit) -{ - /* Even though we do multisample resolves at the time of the blit, OpenGL - * specification defines them as if they happen at the time of rendering, - * which means that the type of averaging we do during the resolve should - * only depend on the source format; the destination format should be - * ignored. But, specification doesn't seem to be strict about it. - * - * It has been observed that mulitisample resolves produce slightly better - * looking images when averaging is done using destination format. NVIDIA's - * proprietary OpenGL driver also follows this approach. - * - * When multisampling, if the source and destination formats are equal - * (aside from the color space), we choose to blit in sRGB space to get - * this higher quality image. - */ - if (blit->src.resource->nr_samples > 1 && - blit->dst.resource->nr_samples <= 1) { - blit->dst.format = blit->dst.resource->format; - - if (util_format_is_srgb(blit->dst.resource->format)) - blit->src.format = util_format_srgb(blit->src.resource->format); - else - blit->src.format = util_format_linear(blit->src.resource->format); - } -} - static void st_BlitFramebuffer(struct gl_context *ctx, struct gl_framebuffer *readFB, @@ -232,8 +204,6 @@ st_BlitFramebuffer(struct gl_context *ctx, blit.src.box.z = srcAtt->Zoffset + srcAtt->CubeMapFace; blit.src.format = util_format_linear(srcObj->pt->format); - st_adjust_blit_for_msaa_resolve(&blit); - st->pipe->blit(st->pipe, &blit); dstRb->defined = true; /* front buffer tracking */ } @@ -270,8 +240,6 @@ st_BlitFramebuffer(struct gl_context *ctx, blit.src.box.z = srcSurf->u.tex.first_layer; blit.src.format = util_format_linear(srcSurf->format); - st_adjust_blit_for_msaa_resolve(&blit); - st->pipe->blit(st->pipe, &blit); dstRb->defined = true; /* front buffer tracking */ } -- 2.30.2