MSAA resolves and other blit-like operations ignore SRGB state anyway,
so we should be able to safely allow resolves between compatible
SRGB/linear formats like SRGBA8 and RGBA8888.

Fixes completely black rendering when using multisampling in L4D2.

NOTE: This is a candidate for the 9.0 branch.

Cc: Paul Berry <stereotype...@gmail.com>
Signed-off-by: Kenneth Graunke <kenn...@whitecape.org>
---
 src/mesa/main/fbobject.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index abc9d83..6d9bf35 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -2802,7 +2802,8 @@ compatible_resolve_formats(const struct gl_renderbuffer 
*colorReadRb,
 {
    /* The simple case where we know the backing formats are the same.
     */
-   if (colorReadRb->Format == colorDrawRb->Format) {
+   if (_mesa_get_srgb_format_linear(colorReadRb->Format) ==
+       _mesa_get_srgb_format_linear(colorDrawRb->Format)) {
       return GL_TRUE;
    }
 
-- 
1.7.11.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to