diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
index 7d447048f53cd726ed6964caaf5709b4883a3290..1fc658453a0a3c2b4c0aae7c5d85e451c8676fb6 100644
--- a/glamor/glamor_utils.h
+++ b/glamor/glamor_utils.h
@@ -614,14 +614,15 @@ gl_iformat_for_pixmap(PixmapPtr pixmap)
     glamor_screen_private *glamor_priv =
         glamor_get_screen_private((pixmap)->drawable.pScreen);
 
-    if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
-        ((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) {
+    if (((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) {
         return glamor_priv->one_channel_format;
-    } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
-               (pixmap)->drawable.depth == 30) {
+    } else if ((pixmap)->drawable.depth == 30) {
         return GL_RGB10_A2;
     } else {
+	if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP)
         return GL_RGBA;
+	else
+        return GL_BGRA;
     }
 }