xf86-video-intel: src/i830_render.c

Zhenyu Wang zhen at kemper.freedesktop.org
Mon Apr 16 11:09:16 EEST 2007


 src/i830_render.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletion(-)

New commits:
diff-tree 1a29750b8dba1371d7d0802744cdf2f3bfa83c13 (from 3a634bbd198650c1597dec4306d99928374c30f3)
Author: Wang Zhenyu <zhenyu.z.wang at intel.com>
Date:   Mon Apr 16 16:21:39 2007 +0800

    EXA: fix 830/845G pict format
    
    Fallback in 830/845G when pict format is a8, x8r8g8b8 or
    x8b8g8r8. The hw doesn't support them.

diff --git a/src/i830_render.c b/src/i830_render.c
index 380c808..ec80c0b 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -149,7 +149,7 @@ static struct formatinfo i830_tex_format
     {PICT_r5g6b5,   MT_16BIT_RGB565   },
     {PICT_a1r5g5b5, MT_16BIT_ARGB1555 },
     {PICT_x1r5g5b5, MT_16BIT_ARGB1555 },
-    {PICT_a8,       MT_8BIT_A8       },	 /* mesa does I8 */
+    {PICT_a8,       MT_8BIT_A8        },
 };
 
 static Bool i830_get_dest_format(PicturePtr pDstPicture, CARD32 *dst_format)
@@ -220,6 +220,8 @@ static CARD32 i830_get_blend_cntl(int op
 
 static Bool i830_check_composite_texture(PicturePtr pPict, int unit)
 {
+    ScrnInfoPtr pScrn = xf86Screens[pPict->pDrawable->pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
     int w = pPict->pDrawable->width;
     int h = pPict->pDrawable->height;
     int i;
@@ -237,6 +239,13 @@ static Bool i830_check_composite_texture
         I830FALLBACK("Unsupported picture format 0x%x\n",
 		     (int)pPict->format);
 
+    if (IS_I830(pI830) || IS_845G(pI830)) {
+	if (pPict->format == PICT_x8r8g8b8 || 
+		pPict->format == PICT_x8b8g8r8 || 
+		pPict->format == PICT_a8)
+	    I830FALLBACK("830/845G don't support a8, x8r8g8b8, x8b8g8r8\n");
+    }
+
     if (pPict->repeat && pPict->repeatType != RepeatNormal)
 	I830FALLBACK("unsupport repeat type\n");
 



More information about the xorg-commit mailing list