Hi:
I've been trying to debug a problem that cropped up recently between the
switch to Xorg server 1.5 and Mesa 7.4 in Ubuntu 9.04. MythTV 0.21 (based
on QT3) would no longer open properly on machines using RADEON DRI.
Something similar happened recently for those using swrast, and it turned
out that a patch to expose more fbconfigs in swrast by Eric Anholt solved
the problem. I took this idea and wrote a small patch doing similar in
RADEON dri, and sure it enough it solved the problem there too.
For more information, you can refer to the existing Ubuntu bug report (
https://bugs.edge.launchpad.net/ubuntu/+source/mythtv/+bug/341898).
Regards
--
Mario Limonciello
supe...@gmail.com
Sent from Austin, Texas, United States
diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c
index ff65e6b..791daec 100644
--- a/src/mesa/drivers/dri/radeon/radeon_screen.c
+++ b/src/mesa/drivers/dri/radeon/radeon_screen.c
@@ -1159,6 +1159,8 @@ static void radeonDestroyContext(__DRIcontextPrivate * driContextPriv)
static const __DRIconfig **
radeonInitScreen(__DRIscreenPrivate *psp)
{
+ const __DRIconfig **configs8, **configs16, **configs24, **configs32;
+
#if !RADEON_COMMON
static const char *driver_name = "Radeon";
static const __DRIutilversion2 ddx_expected = { 4, 5, 0, 0 };
@@ -1206,11 +1208,15 @@ radeonInitScreen(__DRIscreenPrivate *psp)
if (!radeonInitDriver(psp))
return NULL;
- return radeonFillInModes( psp,
- dri_priv->bpp,
- (dri_priv->bpp == 16) ? 16 : 24,
- (dri_priv->bpp == 16) ? 0 : 8,
- (dri_priv->backOffset != dri_priv->depthOffset) );
+ configs8 = radeonFillInModes(psp, 8, 8, 0, (dri_priv->backOffset != dri_priv->depthOffset));
+ configs16 = radeonFillInModes(psp, 16, 16, 0, (dri_priv->backOffset != dri_priv->depthOffset));
+ configs24 = radeonFillInModes(psp, 24, 24, 8, (dri_priv->backOffset != dri_priv->depthOffset));
+ configs32 = radeonFillInModes(psp, 32, 24, 8, (dri_priv->backOffset != dri_priv->depthOffset));
+
+ configs16 = driConcatConfigs(configs8, configs16);
+ configs24 = driConcatConfigs(configs16, configs24);
+
+ return driConcatConfigs(configs24, configs32);
}
------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today.
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev