Use 16bpp when running in virt and on XenSource gfx

Due to graphics corruption default to 16bpp in virt instead of 24 (Fedora).
Do the same on XenSource gfx, which suffers from the same issue.

Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Frederic Crozat
2016-04-26 13:57:52 +02:00
committed by Adam Jackson
parent 23da607336
commit 82db44fe8a

View File

@@ -466,6 +466,7 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
vgaHWPtr hwp;
MessageType from, from1;
int i;
int defaultdepth;
int depth_flags;
ClockRangePtr clockRanges;
char *s;
@@ -551,11 +552,23 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
depth_flags |= Support32bppFb |
SupportConvert32to24 |
PreferConvert32to24;
/* use 16bpp in virt and on XenSource */
#ifndef PCI_CHIP_QEMU
#define PCI_CHIP_QEMU 0x1af4
#endif
#define PCI_CHIP_XENSOURCE 0x5853
if (((pCir->PciInfo->subvendor_id & 0xffff) == PCI_CHIP_QEMU) ||
((pCir->PciInfo->subvendor_id & 0xffff) == PCI_CHIP_XENSOURCE))
defaultdepth = 16;
else
defaultdepth = 24;
/*
* The first thing we should figure out is the depth, bpp, etc.
* We support both 24bpp and 32bpp layouts, so indicate that.
*/
if (!xf86SetDepthBpp(pScrn, 0, 0, 24, depth_flags)) {
if (!xf86SetDepthBpp(pScrn, 0, 0, defaultdepth, depth_flags)) {
return FALSE;
} else {
/* Check that the returned depth is one we support */