Even if the pixmap's storage has alpha, it may have been uploaded with
garbage in the alpha channel, so we need to force the shader to set
alpha to 1.  This was broken way back in
355334fcd99e4dce62e2be1e27290c9a74ea944f.

Fixes rendercheck -t composite -f x8r8g8b8.

Signed-off-by: Eric Anholt <e...@anholt.net>
---
 glamor/glamor_render.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
index b5903acb20c2..f2ef08316410 100644
--- a/glamor/glamor_render.c
+++ b/glamor/glamor_render.c
@@ -868,7 +868,10 @@ glamor_composite_choose_shader(CARD8 op,
                 goto fail;
         }
         else {
-            key.mask = SHADER_MASK_TEXTURE_ALPHA;
+            if (PICT_FORMAT_A(mask->format))
+                key.mask = SHADER_MASK_TEXTURE_ALPHA;
+            else
+                key.mask = SHADER_MASK_TEXTURE;
         }
 
         if (!mask->componentAlpha) {
-- 
2.9.3

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to