summaryrefslogtreecommitdiffstats
path: root/src/vivante.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vivante.c')
-rw-r--r--src/vivante.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/vivante.c b/src/vivante.c
index ff42a79..609730b 100644
--- a/src/vivante.c
+++ b/src/vivante.c
@@ -86,18 +86,19 @@ void vivante_set_pixmap_bo(PixmapPtr pixmap, struct drm_armada_bo *bo)
/*
* This is an imprecise conversion to the Vivante GAL format.
- * One important thing here is that Pixmaps don't have an
- * alpha channel.
+ * Although pixmaps in X generally don't have an alpha channel,
+ * we must set the format to include the alpha channel to
+ * ensure that the GPU copies all the bits.
*/
switch (pixmap->drawable.bitsPerPixel) {
case 16:
if (pixmap->drawable.depth == 15)
- format = gcvSURF_X1R5G5B5;
+ format = gcvSURF_A1R5G5B5;
else
format = gcvSURF_R5G6B5;
break;
case 32:
- format = gcvSURF_X8R8G8B8;
+ format = gcvSURF_A8R8G8B8;
break;
default:
goto fail;