freebsd-ports/x11-drivers/xf86-video-intel/files/extra-src_i965_render.c
Martin Wilke 29e347e197 - Please welcome Xorg 7.5.2
The Xorg Team is pleased to announce the next round of Xorg updates.
       The team created a new flag called WITH_NEW_XORG that users can include
       in /etc/make.conf. This was created for the intel KMS work being done
       althouthough It probably works for other chips. Unfortunately, the intel
       KMS driver will only work on FreeBSD 9(RELENG|STABLE) or 10/HEAD users.
       Older version of FreeBSD will not be supported. Intel users will need
       to patch their source manually with Konstantin?s KMS kernel patch to get
       the newer chips to work. Please carefully read UPDATING entry.

Changes:

        - libdrm 2.4.31 (including KMS support)
        - mesa 7.11.2
        - xorg-server 1.10.6
        - a lot of new Graphic Drivers.

    I would like to thank:

         Koop Mast
         Eitan Adler
         Niclas Zeising
         and all helpers and testers from x11@.
2012-04-21 17:03:32 +00:00

78 lines
2.6 KiB
C

--- src/i965_render.c.orig 2009-05-12 19:12:11.000000000 -0500
+++ src/i965_render.c 2010-03-07 15:30:45.000000000 -0600
@@ -181,26 +181,8 @@
return TRUE;
}
-static Bool i965_check_composite_texture(PicturePtr pPict, int unit)
+static Bool i965_check_composite_texture(ScrnInfoPtr pScrn, PicturePtr pPict, int unit)
{
- ScrnInfoPtr pScrn = xf86Screens[pPict->pDrawable->pScreen->myNum];
- int w = pPict->pDrawable->width;
- int h = pPict->pDrawable->height;
- int i;
-
- if ((w > 8192) || (h > 8192))
- I830FALLBACK("Picture w/h too large (%dx%d)\n", w, h);
-
- for (i = 0; i < sizeof(i965_tex_formats) / sizeof(i965_tex_formats[0]);
- i++)
- {
- if (i965_tex_formats[i].fmt == pPict->format)
- break;
- }
- if (i == sizeof(i965_tex_formats) / sizeof(i965_tex_formats[0]))
- I830FALLBACK("Unsupported picture format 0x%x\n",
- (int)pPict->format);
-
if (pPict->repeatType > RepeatReflect)
I830FALLBACK("extended repeat (%d) not supported\n",
pPict->repeatType);
@@ -211,6 +193,26 @@
I830FALLBACK("Unsupported filter 0x%x\n", pPict->filter);
}
+ if (pPict->pDrawable)
+ {
+ int w, h, i;
+
+ w = pPict->pDrawable->width;
+ h = pPict->pDrawable->height;
+ if ((w > 8192) || (h > 8192))
+ I830FALLBACK("Picture w/h too large (%dx%d)\n", w, h);
+
+ for (i = 0; i < sizeof(i965_tex_formats) / sizeof(i965_tex_formats[0]);
+ i++)
+ {
+ if (i965_tex_formats[i].fmt == pPict->format)
+ break;
+ }
+ if (i == sizeof(i965_tex_formats) / sizeof(i965_tex_formats[0]))
+ I830FALLBACK("Unsupported picture format 0x%x\n",
+ (int)pPict->format);
+ }
+
return TRUE;
}
@@ -239,9 +241,9 @@
}
}
- if (!i965_check_composite_texture(pSrcPicture, 0))
+ if (!i965_check_composite_texture(pScrn, pSrcPicture, 0))
I830FALLBACK("Check Src picture texture\n");
- if (pMaskPicture != NULL && !i965_check_composite_texture(pMaskPicture, 1))
+ if (pMaskPicture != NULL && !i965_check_composite_texture(pScrn, pMaskPicture, 1))
I830FALLBACK("Check Mask picture texture\n");
if (!i965_get_dest_format(pDstPicture, &tmp1))
@@ -1258,7 +1260,7 @@
PicturePtr pMaskPicture, PicturePtr pDstPicture,
PixmapPtr pSrc, PixmapPtr pMask, PixmapPtr pDst)
{
- ScrnInfoPtr pScrn = xf86Screens[pSrcPicture->pDrawable->pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86Screens[pDstPicture->pDrawable->pScreen->myNum];
I830Ptr pI830 = I830PTR(pScrn);
struct gen4_render_state *render_state= pI830->gen4_render_state;
gen4_composite_op *composite_op = &render_state->composite_op;