svga: fix regression related to srgb
authorNeha Bhende <bhenden@vmware.com>
Thu, 18 Aug 2016 22:27:45 +0000 (15:27 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 26 Aug 2016 12:19:52 +0000 (06:19 -0600)
This regression is caused because of commit 3190c7ee9727161d627f107c2e7f8ec3a11941c1
Regression caused by following OpenGL 4.4 spec rules relates to
GL_FRAMEBUFFER_SRGB in Mesa.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
src/gallium/drivers/svga/svga_pipe_blit.c

index ea0b3968c39ea77bc67f9471816e1a64a5534dc8..e1a4c069ca00f9721e3adba36c1ed13b03e8c72e 100644 (file)
@@ -322,6 +322,18 @@ svga_blit(struct pipe_context *pipe,
       return;
    }
 
+   /**
+    * When there is blit from srgb to linear format or vice versa, we change
+    * src.format to srgb or linear, respectively
+    */
+
+   if (util_format_is_srgb(blit.dst.format)) {
+      blit.src.format = util_format_srgb(blit.src.format);
+   }
+   else {
+      blit.src.format = util_format_linear(blit.src.format);
+   }
+
    /* XXX turn off occlusion and streamout queries */
 
    util_blitter_save_vertex_buffer_slot(svga->blitter, svga->curr.vb);