Hi Roland,

I was just looking into this issue recently.
I can see that the visual masks are hardcoded.
The following patch seems to fix the issue:

diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c
index c8ae0adc9..226536d0d 100644
--- a/hw/vfb/InitOutput.c
+++ b/hw/vfb/InitOutput.c
@@ -1006,10 +1006,17 @@ vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
                                  8, TrueColor, 0xf800, 0x07e0, 0x001f);
         break;
     case 24:
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+        miSetVisualTypesAndMasks(24,
+                                 ((1 << TrueColor) |
+                                  (1 << DirectColor)),
+                                 8, TrueColor, 0x0000ff00, 0x00ff0000, 
0xff000000);
+#else
         miSetVisualTypesAndMasks(24,
                                  ((1 << TrueColor) |
                                   (1 << DirectColor)),
                                  8, TrueColor, 0xff0000, 0x00ff00, 0x0000ff);
+#endif
         break;
     case 30:
         miSetVisualTypesAndMasks(30,


But I haven't tested this thoroughly yet. I will raise a Merge Request with 
this upstream
and will notify you afterwards. I just wanted to let you know that I was 
looking into this and
had an update on this.

Thanks,
Pranav

Reply via email to