summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemi Cardona <remi@gentoo.org>2009-07-20 21:29:02 +0000
committerRemi Cardona <remi@gentoo.org>2009-07-20 21:29:02 +0000
commitc368af92c1cbeb126e426daa4f470cac91df968b (patch)
treea8a57aaf20ac64efbabae948eeb2f6b1a25accd2 /x11-drivers/xf86-video-intel
parentSanitize for libtool 1.x, thanks to EvaSDK. (diff)
downloadhistorical-c368af92c1cbeb126e426daa4f470cac91df968b.tar.gz
historical-c368af92c1cbeb126e426daa4f470cac91df968b.tar.bz2
historical-c368af92c1cbeb126e426daa4f470cac91df968b.zip
x11-drivers/xf86-video-intel: backport another 4 patches from git master
Package-Manager: portage-2.2_rc33/cvs/Linux i686
Diffstat (limited to 'x11-drivers/xf86-video-intel')
-rw-r--r--x11-drivers/xf86-video-intel/ChangeLog18
-rw-r--r--x11-drivers/xf86-video-intel/Manifest13
-rw-r--r--x11-drivers/xf86-video-intel/files/2.7.99.902-0001-Fix-XV-scan-line-calculation-when-rotated.patch2
-rw-r--r--x11-drivers/xf86-video-intel/files/2.7.99.902-0002-Reset-framebuffer-offset-when-rebinding-aperture-227.patch2
-rw-r--r--x11-drivers/xf86-video-intel/files/2.7.99.902-0003-Use-batch_start_atomic-to-fix-batchbuffer-wrapping-p.patch2
-rw-r--r--x11-drivers/xf86-video-intel/files/2.7.99.902-0004-Fix-915-class-Render-after-the-8xx-class-Render-fix.patch116
-rw-r--r--x11-drivers/xf86-video-intel/files/2.7.99.902-0005-Really-fix-i915-render.-Fail-at-commit-amend.patch76
-rw-r--r--x11-drivers/xf86-video-intel/files/2.7.99.902-0006-accessing-a-pixmap-if-prepare_access-fails-is-verbot.patch34
-rw-r--r--x11-drivers/xf86-video-intel/files/2.7.99.902-0007-Update-to-xextproto-7.1-support.patch184
-rw-r--r--x11-drivers/xf86-video-intel/xf86-video-intel-2.7.99.902-r1.ebuild42
10 files changed, 481 insertions, 8 deletions
diff --git a/x11-drivers/xf86-video-intel/ChangeLog b/x11-drivers/xf86-video-intel/ChangeLog
index ecdeff820212..aec482f94b67 100644
--- a/x11-drivers/xf86-video-intel/ChangeLog
+++ b/x11-drivers/xf86-video-intel/ChangeLog
@@ -1,6 +1,22 @@
# ChangeLog for x11-drivers/xf86-video-intel
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-intel/ChangeLog,v 1.32 2009/07/16 05:11:32 remi Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-intel/ChangeLog,v 1.33 2009/07/20 21:29:02 remi Exp $
+
+*xf86-video-intel-2.7.99.902-r1 (20 Jul 2009)
+
+ 20 Jul 2009; Rémi Cardona <remi@gentoo.org>
+ files/2.7.99.902-0001-Fix-XV-scan-line-calculation-when-rotated.patch,
+ +xf86-video-intel-2.7.99.902-r1.ebuild,
+ files/2.7.99.902-0002-Reset-framebuffer-offset-when-rebinding-aperture-227
+ .patch,
+ files/2.7.99.902-0003-Use-batch_start_atomic-to-fix-batchbuffer-wrapping-p
+ .patch,
+ +files/2.7.99.902-0004-Fix-915-class-Render-after-the-8xx-class-Render-fix
+ .patch,
+ +files/2.7.99.902-0005-Really-fix-i915-render.-Fail-at-commit-amend.patch,
+ +files/2.7.99.902-0006-accessing-a-pixmap-if-prepare_access-fails-is-verbo
+ t.patch, +files/2.7.99.902-0007-Update-to-xextproto-7.1-support.patch:
+ backport another 4 patches from git master
*xf86-video-intel-2.7.99.902 (16 Jul 2009)
diff --git a/x11-drivers/xf86-video-intel/Manifest b/x11-drivers/xf86-video-intel/Manifest
index caabdb1d65ff..7dc4afcc7dfe 100644
--- a/x11-drivers/xf86-video-intel/Manifest
+++ b/x11-drivers/xf86-video-intel/Manifest
@@ -8,9 +8,13 @@ AUX 2.6.1-0001-clean-up-man-page-generation-and-remove-all-traces-o.patch 3382 R
AUX 2.6.3-0001-clean-up-man-page-generation-and-remove-all-traces-o.patch 3382 RMD160 c8526c1814d59f4114e6c9cc6fe1e7c32598fd46 SHA1 e566804c2677c7f8fae5d97f9a883f162cd3c649 SHA256 78e20343a166d11f2c3bb5be0456bbd74758bc9a98e9aeefce75e0918923347c
AUX 2.6.3-0002-Fix-Xv-crash-with-overlay-video.patch 809 RMD160 6f6d7f25efddeb2db9d35e2ea92d408a54af5a56 SHA1 2208274bb58f76503cf2d10d236e6591c48681cf SHA256 4236e01b101a69ca27dfc9c06c367d2b0a381afa343dc3a2b65504559b24fc3c
AUX 2.7.0-0001-KMS-hook-up-output-properties-for-randr.patch 7360 RMD160 4220ba1238738098dadcf27ed70dfe97e9273188 SHA1 99427c926e22e9a8f6b2a4bf70ca7c6e94f0f1c4 SHA256 0771442935e5f64f7f45bcad6ef1984082492396e499fbe57c22dc2e99e4c475
-AUX 2.7.99.902-0001-Fix-XV-scan-line-calculation-when-rotated.patch 1562 RMD160 8a2005fe270febbe08c22a1e67fda7ec7b0dc27b SHA1 65229a6c6aec97aacb82a600cdc64786d67a79ab SHA256 9ecbe8c352f67aee2f0b9543111ccda4805f1d1011823189e050a8f1b067f8b8
-AUX 2.7.99.902-0002-Reset-framebuffer-offset-when-rebinding-aperture-227.patch 929 RMD160 b73ced1f130c9f72e1aff8f1bb1950f3ac89db55 SHA1 a7deb3e3e0bbdfdd77628ed6cf4e4a38b1e541ea SHA256 4e6e7af0a46bdda99d94e9a303e521f040db3043dee74c995d49aec2eb60069f
-AUX 2.7.99.902-0003-Use-batch_start_atomic-to-fix-batchbuffer-wrapping-p.patch 12168 RMD160 27fd9703a7c56748319f2c96b4235975bdd60666 SHA1 2606c4cd427be37d317a58f6ee23f9bed744c00e SHA256 a9e9a369c1690eb20d5b0d505db199b3c0cd7cdc6176ac9c6b5d0a285ea59a3f
+AUX 2.7.99.902-0001-Fix-XV-scan-line-calculation-when-rotated.patch 1562 RMD160 da7527100785a3d04ac1a16ee9315be3af674bdd SHA1 e476b1f7afdf6094e1d34a11c4334ebed71cfd56 SHA256 cdeaa91dac2a94a9da97a3c52650e23919a83c66dba2fe67dd198bf802356693
+AUX 2.7.99.902-0002-Reset-framebuffer-offset-when-rebinding-aperture-227.patch 929 RMD160 6eb70b4ec1a811a040206006487860c6443901c9 SHA1 5b845931d2864f665d72e4c7f5708686a0b63a76 SHA256 404df671263dbbc8fdd464fc2a5328e8691a575f46c82d9f7643e1f7ac742b37
+AUX 2.7.99.902-0003-Use-batch_start_atomic-to-fix-batchbuffer-wrapping-p.patch 12168 RMD160 c5d7585f4f7669e14af615442d42aaae5a9f0356 SHA1 0d7cd9449b11a553994b21e680a43277a3e157c5 SHA256 469761e23335ab6d26f99ee1cee71d0683720fd3b6d6bd9a9af8e7596b82bafb
+AUX 2.7.99.902-0004-Fix-915-class-Render-after-the-8xx-class-Render-fix.patch 3742 RMD160 9edf20437b7cb498fc01e6fc4648891c9a964f65 SHA1 adeb628a12e505a6dc36afc687d551235862bbb3 SHA256 fc14902689710349af25427656078a77a922d5c57d9bb0d42458450e3a08a864
+AUX 2.7.99.902-0005-Really-fix-i915-render.-Fail-at-commit-amend.patch 2717 RMD160 609e9ba7c85cec0e1bf267f60d96ca00821c5185 SHA1 0bb9f5b9196d9b7539e40265ff22ff67bfdd57b0 SHA256 74c194342a2fd516146ed6a061575007eec975699ab3e782161d760be9c739f1
+AUX 2.7.99.902-0006-accessing-a-pixmap-if-prepare_access-fails-is-verbot.patch 1181 RMD160 93dc9f717a73fffa506ddefed385a5ccf0d91a97 SHA1 129d243fe03873ff474cb6589cc11956f7e41df3 SHA256 d4c3a58918d58f192ed2add22d18437e3e5de665b133ff1c71eb989fb1f104c5
+AUX 2.7.99.902-0007-Update-to-xextproto-7.1-support.patch 5021 RMD160 a003b7cb1c7f914345134ad2a19fdaaad20dbccf SHA1 9cbfe46bdb34134fc871d948ca3d7259678466f0 SHA256 e90e48b506e3f4976a0b36c5820aae7e04d06574e3e362c881f27100a9bc08ca
AUX i810.xinf 1442 RMD160 38dff5ef3b6548c9fdea8f6df2b607eee8f670f2 SHA1 cf0b700f6fa0734ea56ff9a167098649d8e3767e SHA256 c690ba8705e21394dcb927f4a5499c7dbdba492042d7d54eb3c21daf5d326347
DIST xf86-video-intel-2.4.3.tar.bz2 661105 RMD160 0d4fe4b7d517d1740c80fe61a8fc44af604ec60e SHA1 8335294c9b76b1f9daad5082d2290555ba2dbce5 SHA256 1752a0f6f5fd28f5c8581f6411f37df7fde5fd4a0bbedc4bf423f9824423afcd
DIST xf86-video-intel-2.5.1.tar.bz2 716182 RMD160 f1d4b438931b564233dc4f76e3cb7fa1b9801aa2 SHA1 58f6f005a698e63cb34ba1b011b0ddce0b0b3862 SHA256 c203b728f1203d6d52b2963cdc6bfd87fb83eb12ab786c8122ea26c7984ac313
@@ -24,6 +28,7 @@ EBUILD xf86-video-intel-2.5.1-r1.ebuild 917 RMD160 011db76a0fbeb6a2df73cf4a77d6d
EBUILD xf86-video-intel-2.6.3-r1.ebuild 972 RMD160 a33e6cbb3d14a837e54e2cb3c520ef34a0fd86fb SHA1 98273299cb4a32b87dbcf1105fbbc146115ac52b SHA256 9618a7f6a25aebc3e53ebccce0bdd87ce1c5e675875453ab190fcac84a3405ce
EBUILD xf86-video-intel-2.7.1.ebuild 808 RMD160 b3ea159f250693c41ffe0779b0f509173c983ceb SHA1 39eac29032ff5774dbdf2493cb745ab4f7d7bb22 SHA256 d9b0176904e8ce6682e2f725f49905519b764410f1ef1701f6e2e904587db85d
EBUILD xf86-video-intel-2.7.99.901.ebuild 957 RMD160 5d30651ece8ada4a17b9d832f11b933097c26027 SHA1 45dd6d864664ef39b00c0d0bbff9878a6ba7441d SHA256 53c9ef19a20cbabefaab4a7787d25360a42e412d327a1575c9995cc3e3226ee1
+EBUILD xf86-video-intel-2.7.99.902-r1.ebuild 1377 RMD160 d6f3722ea3e700a1b6e273f19f4445d87cb45979 SHA1 0859daf659ecabd41bcf9eb76ce176fbb505a2df SHA256 632184cd6e772c4e7119d1fc4effed8524c0a687118abef27f76ff8dd2b31394
EBUILD xf86-video-intel-2.7.99.902.ebuild 1068 RMD160 5fec81a8f6c87fd24f4294d953b1aa4721d85df0 SHA1 daae26322a6081d167b585677a13b0d3ddfbb0bc SHA256 8efb368e1ac5baf17febdd7f65dfc25747f0b57b5f5fcf7617bfbff49ea62fa0
-MISC ChangeLog 33911 RMD160 5a32cd403fcaaebf423506f9f9fca005ce557304 SHA1 21f6e392f4be8b5e6bfb2c008fcba0b949fb8d0e SHA256 8700d76119c29a1b21d931339bcbfed58e34fe7c50e8c59b8395bb6ce423f909
+MISC ChangeLog 34654 RMD160 72e3fe58ea8496be3ee14a5cb37c25a4fc54b078 SHA1 03a8f6cc802497739c42295e84b404f2cd9d16d6 SHA256 e0293eefb456303dc5386929673f2ff267e78d03408838f545a670de2fd9f298
MISC metadata.xml 157 RMD160 bfca46b367901674b4ec5419c063ae27fb446b0a SHA1 4fe7fb7398abd34822cec8be77f8aaf86e28a1a3 SHA256 bc6a4a3d5e32f9329039b242036828256c9f2c33862bc1d606d4ac8427032fdc
diff --git a/x11-drivers/xf86-video-intel/files/2.7.99.902-0001-Fix-XV-scan-line-calculation-when-rotated.patch b/x11-drivers/xf86-video-intel/files/2.7.99.902-0001-Fix-XV-scan-line-calculation-when-rotated.patch
index fec386cbef5c..fcf38da59624 100644
--- a/x11-drivers/xf86-video-intel/files/2.7.99.902-0001-Fix-XV-scan-line-calculation-when-rotated.patch
+++ b/x11-drivers/xf86-video-intel/files/2.7.99.902-0001-Fix-XV-scan-line-calculation-when-rotated.patch
@@ -1,7 +1,7 @@
From b74bf3f9a65af9e72921d4e9028d9d4d023f8bc6 Mon Sep 17 00:00:00 2001
From: Barry Scott <barry.scott@onelan.co.uk>
Date: Mon, 13 Jul 2009 16:34:20 -0700
-Subject: [PATCH 1/3] Fix XV scan line calculation when rotated.
+Subject: [PATCH 1/7] Fix XV scan line calculation when rotated.
---
src/i830_video.c | 11 ++++++-----
diff --git a/x11-drivers/xf86-video-intel/files/2.7.99.902-0002-Reset-framebuffer-offset-when-rebinding-aperture-227.patch b/x11-drivers/xf86-video-intel/files/2.7.99.902-0002-Reset-framebuffer-offset-when-rebinding-aperture-227.patch
index a99a41b748b3..72d34c568e43 100644
--- a/x11-drivers/xf86-video-intel/files/2.7.99.902-0002-Reset-framebuffer-offset-when-rebinding-aperture-227.patch
+++ b/x11-drivers/xf86-video-intel/files/2.7.99.902-0002-Reset-framebuffer-offset-when-rebinding-aperture-227.patch
@@ -1,7 +1,7 @@
From e386e7b14b139f15205e14b173e8222bf38d9e18 Mon Sep 17 00:00:00 2001
From: Keith Packard <keithp@keithp.com>
Date: Wed, 15 Jul 2009 09:43:04 -0700
-Subject: [PATCH 2/3] Reset framebuffer offset when rebinding aperture (22760).
+Subject: [PATCH 2/7] Reset framebuffer offset when rebinding aperture (22760).
scrn->fbOffset may be changed when binding objects to the aperture during
server initialization or VT enter. This was accidentally removed when the
diff --git a/x11-drivers/xf86-video-intel/files/2.7.99.902-0003-Use-batch_start_atomic-to-fix-batchbuffer-wrapping-p.patch b/x11-drivers/xf86-video-intel/files/2.7.99.902-0003-Use-batch_start_atomic-to-fix-batchbuffer-wrapping-p.patch
index d2852e4a8210..5ed5fbc8982c 100644
--- a/x11-drivers/xf86-video-intel/files/2.7.99.902-0003-Use-batch_start_atomic-to-fix-batchbuffer-wrapping-p.patch
+++ b/x11-drivers/xf86-video-intel/files/2.7.99.902-0003-Use-batch_start_atomic-to-fix-batchbuffer-wrapping-p.patch
@@ -1,7 +1,7 @@
From a1e6abb5ca89d699144d10fdc4309b3b78f2f7a9 Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Wed, 15 Jul 2009 14:15:10 -0700
-Subject: [PATCH 3/3] Use batch_start_atomic to fix batchbuffer wrapping problems with 8xx render.
+Subject: [PATCH 3/7] Use batch_start_atomic to fix batchbuffer wrapping problems with 8xx render.
Bug #22483.
---
diff --git a/x11-drivers/xf86-video-intel/files/2.7.99.902-0004-Fix-915-class-Render-after-the-8xx-class-Render-fix.patch b/x11-drivers/xf86-video-intel/files/2.7.99.902-0004-Fix-915-class-Render-after-the-8xx-class-Render-fix.patch
new file mode 100644
index 000000000000..8d457c1d7530
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/files/2.7.99.902-0004-Fix-915-class-Render-after-the-8xx-class-Render-fix.patch
@@ -0,0 +1,116 @@
+From 8dd7ccf37e2de6d80b556e6d18af244cefc1e417 Mon Sep 17 00:00:00 2001
+From: Eric Anholt <eric@anholt.net>
+Date: Thu, 16 Jul 2009 11:40:51 -0700
+Subject: [PATCH 4/7] Fix 915-class Render after the 8xx-class Render fix.
+
+The two shared i830_composite.c, so giving i830 atomic batch support
+triggered anger about starting i830's atomic area while in i915's atomic
+area. Instead, split the emit-a-primitive stuff from the state emission.
+---
+ src/i830.h | 3 +++
+ src/i830_render.c | 45 +++++++++++++++++++++++++++++----------------
+ src/i915_render.c | 3 ++-
+ 3 files changed, 34 insertions(+), 17 deletions(-)
+
+diff --git a/src/i830.h b/src/i830.h
+index ec57662..54dddd8 100644
+--- a/src/i830.h
++++ b/src/i830.h
+@@ -788,6 +788,9 @@ i830_transform_is_affine (PictTransformPtr t);
+
+ void i830_composite(PixmapPtr pDst, int srcX, int srcY,
+ int maskX, int maskY, int dstX, int dstY, int w, int h);
++void i830_emit_composite_primitive(PixmapPtr pDst, int srcX, int srcY,
++ int maskX, int maskY, int dstX, int dstY,
++ int w, int h);
+ void i830_done_composite(PixmapPtr pDst);
+ /* i915_render.c */
+ Bool i915_check_composite(int op, PicturePtr pSrc, PicturePtr pMask,
+diff --git a/src/i830_render.c b/src/i830_render.c
+index ecee6f2..c5196cc 100644
+--- a/src/i830_render.c
++++ b/src/i830_render.c
+@@ -581,14 +581,10 @@ i830_emit_composite_state(ScrnInfoPtr pScrn)
+ }
+ }
+
+-/**
+- * Do a single rectangle composite operation.
+- *
+- * This function is shared between i830 and i915 generation code.
+- */
+ void
+-i830_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
+- int dstX, int dstY, int w, int h)
++i830_emit_composite_primitive(PixmapPtr pDst, int srcX, int srcY,
++ int maskX, int maskY,
++ int dstX, int dstY, int w, int h)
+ {
+ ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
+ I830Ptr pI830 = I830PTR(pScrn);
+@@ -670,15 +666,6 @@ i830_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
+
+ num_floats = 3 * per_vertex;
+
+- intel_batch_start_atomic(pScrn,
+- 58 + /* invarient */
+- 24 + /* setup */
+- 20 + /* 2 * setup_texture */
+- 6 + num_floats /* verts */);
+-
+- if (pI830->needs_render_state_emit)
+- i830_emit_composite_state(pScrn);
+-
+ BEGIN_BATCH(6 + num_floats);
+
+ OUT_BATCH(MI_NOOP);
+@@ -740,6 +727,32 @@ i830_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
+ }
+
+ ADVANCE_BATCH();
++}
++
++
++/**
++ * Do a single rectangle composite operation.
++ *
++ * This function is shared between i830 and i915 generation code.
++ */
++void
++i830_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
++ int dstX, int dstY, int w, int h)
++{
++ ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
++ I830Ptr pI830 = I830PTR(pScrn);
++
++ intel_batch_start_atomic(pScrn,
++ 58 + /* invarient */
++ 24 + /* setup */
++ 20 + /* 2 * setup_texture */
++ 6 + 30 /* verts */);
++
++ if (pI830->needs_render_state_emit)
++ i830_emit_composite_state(pScrn);
++
++ i830_emit_composite_primitive(pDst, srcX, srcY, maskX, maskY, dstX, dstY,
++ w, h);
+
+ intel_batch_end_atomic(pScrn);
+
+diff --git a/src/i915_render.c b/src/i915_render.c
+index ab04e9c..2d11986 100644
+--- a/src/i915_render.c
++++ b/src/i915_render.c
+@@ -556,7 +556,8 @@ i915_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
+ if (pI830->i915_render_state.needs_emit)
+ i915_emit_composite_setup(pScrn);
+
+- i830_composite(pDst, srcX, srcY, maskX, maskY, dstX, dstY, w, h);
++ i830_emit_composite_primitive(pDst, srcX, srcY, maskX, maskY, dstX, dstY,
++ w, h);
+
+ intel_batch_end_atomic(pScrn);
+ }
+--
+1.6.3.3
+
diff --git a/x11-drivers/xf86-video-intel/files/2.7.99.902-0005-Really-fix-i915-render.-Fail-at-commit-amend.patch b/x11-drivers/xf86-video-intel/files/2.7.99.902-0005-Really-fix-i915-render.-Fail-at-commit-amend.patch
new file mode 100644
index 000000000000..38263027a980
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/files/2.7.99.902-0005-Really-fix-i915-render.-Fail-at-commit-amend.patch
@@ -0,0 +1,76 @@
+From bb3007384298cb57625ec0b3868dff9b23568f3e Mon Sep 17 00:00:00 2001
+From: Eric Anholt <eric@anholt.net>
+Date: Thu, 16 Jul 2009 12:56:07 -0700
+Subject: [PATCH 5/7] Really fix i915 render. Fail at commit --amend.
+
+---
+ src/i830.h | 2 --
+ src/i915_render.c | 25 +++++++++++++------------
+ 2 files changed, 13 insertions(+), 14 deletions(-)
+
+diff --git a/src/i830.h b/src/i830.h
+index 54dddd8..21c98f5 100644
+--- a/src/i830.h
++++ b/src/i830.h
+@@ -482,8 +482,6 @@ typedef struct _I830Rec {
+
+ struct {
+ int op;
+- PicturePtr pSrcPicture, pMaskPicture, pDstPicture;
+- PixmapPtr pSrc, pMask, pDst;
+ uint32_t dst_format;
+ Bool is_nearest;
+ Bool needs_emit;
+diff --git a/src/i915_render.c b/src/i915_render.c
+index 2d11986..c81366a 100644
+--- a/src/i915_render.c
++++ b/src/i915_render.c
+@@ -322,6 +322,13 @@ i915_prepare_composite(int op, PicturePtr pSrcPicture,
+ i830_get_pixmap_bo(pDst),
+ };
+
++ pI830->render_src_picture = pSrcPicture;
++ pI830->render_src = pSrc;
++ pI830->render_mask_picture = pMaskPicture;
++ pI830->render_mask = pMask;
++ pI830->render_dst_picture = pDstPicture;
++ pI830->render_dst = pDst;
++
+ i830_exa_check_pitch_3d(pSrc);
+ if (pMask)
+ i830_exa_check_pitch_3d(pMask);
+@@ -351,12 +358,6 @@ i915_prepare_composite(int op, PicturePtr pSrcPicture,
+ }
+
+ pI830->i915_render_state.op = op;
+- pI830->i915_render_state.pSrcPicture = pSrcPicture;
+- pI830->i915_render_state.pMaskPicture = pMaskPicture;
+- pI830->i915_render_state.pDstPicture = pDstPicture;
+- pI830->i915_render_state.pSrc = pSrc;
+- pI830->i915_render_state.pMask = pMask;
+- pI830->i915_render_state.pDst = pDst;
+ pI830->i915_render_state.needs_emit = TRUE;
+
+ return TRUE;
+@@ -367,12 +368,12 @@ i915_emit_composite_setup(ScrnInfoPtr pScrn)
+ {
+ I830Ptr pI830 = I830PTR(pScrn);
+ int op = pI830->i915_render_state.op;
+- PicturePtr pSrcPicture = pI830->i915_render_state.pSrcPicture;
+- PicturePtr pMaskPicture = pI830->i915_render_state.pMaskPicture;
+- PicturePtr pDstPicture = pI830->i915_render_state.pDstPicture;
+- PixmapPtr pSrc = pI830->i915_render_state.pSrc;
+- PixmapPtr pMask = pI830->i915_render_state.pMask;
+- PixmapPtr pDst = pI830->i915_render_state.pDst;
++ PicturePtr pSrcPicture = pI830->render_src_picture;
++ PicturePtr pMaskPicture = pI830->render_mask_picture;
++ PicturePtr pDstPicture = pI830->render_dst_picture;
++ PixmapPtr pSrc = pI830->render_src;
++ PixmapPtr pMask = pI830->render_mask;
++ PixmapPtr pDst = pI830->render_dst;
+ uint32_t dst_format = pI830->i915_render_state.dst_format, dst_pitch;
+ uint32_t blendctl;
+ int out_reg = FS_OC;
+--
+1.6.3.3
+
diff --git a/x11-drivers/xf86-video-intel/files/2.7.99.902-0006-accessing-a-pixmap-if-prepare_access-fails-is-verbot.patch b/x11-drivers/xf86-video-intel/files/2.7.99.902-0006-accessing-a-pixmap-if-prepare_access-fails-is-verbot.patch
new file mode 100644
index 000000000000..cceab079830d
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/files/2.7.99.902-0006-accessing-a-pixmap-if-prepare_access-fails-is-verbot.patch
@@ -0,0 +1,34 @@
+From 57c7cbade9556e7b21867e61353f0928fd553616 Mon Sep 17 00:00:00 2001
+From: Owain Ainsworth <zerooa@googlemail.com>
+Date: Thu, 16 Jul 2009 20:38:43 +0100
+Subject: [PATCH 6/7] accessing a pixmap if prepare_access fails is verboten.
+
+Don't do it, treat this the same as every other prepare access call in uxa.
+
+Reviewed-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Owain Ainsworth <zerooa@googlemail.com>
+---
+ uxa/uxa.c | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/uxa/uxa.c b/uxa/uxa.c
+index 1f2d75b..22c7c40 100644
+--- a/uxa/uxa.c
++++ b/uxa/uxa.c
+@@ -244,9 +244,10 @@ uxa_validate_gc (GCPtr pGC, unsigned long changes, DrawablePtr pDrawable)
+ /* We can't inline stipple handling like we do for GCTile because it sets
+ * fbgc privates.
+ */
+- uxa_prepare_access(&pGC->stipple->drawable, UXA_ACCESS_RW);
+- fbValidateGC (pGC, changes, pDrawable);
+- uxa_finish_access(&pGC->stipple->drawable);
++ if (uxa_prepare_access(&pGC->stipple->drawable, UXA_ACCESS_RW)) {
++ fbValidateGC (pGC, changes, pDrawable);
++ uxa_finish_access(&pGC->stipple->drawable);
++ }
+ } else {
+ fbValidateGC (pGC, changes, pDrawable);
+ }
+--
+1.6.3.3
+
diff --git a/x11-drivers/xf86-video-intel/files/2.7.99.902-0007-Update-to-xextproto-7.1-support.patch b/x11-drivers/xf86-video-intel/files/2.7.99.902-0007-Update-to-xextproto-7.1-support.patch
new file mode 100644
index 000000000000..d3df598d89da
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/files/2.7.99.902-0007-Update-to-xextproto-7.1-support.patch
@@ -0,0 +1,184 @@
+From 0a4c4c5fe8ebad2dd13f5770bd90a194eebb2890 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu, 16 Jul 2009 11:40:15 +1000
+Subject: [PATCH 7/7] Update to xextproto 7.1 support.
+
+DPMS header was split into dpms.h (client) and dpmsconst.h (server). Drivers
+need to include dpmsconst.h if xextproto 7.1 is available.
+
+SHM is now shm.h instead of shmstr. Requires definition of ShmFuncs that's
+not exported by the server.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ configure.ac | 4 ++++
+ src/ch7017/ch7017.c | 5 +++++
+ src/ch7xxx/ch7xxx.c | 5 +++++
+ src/ivch/ivch.c | 5 +++++
+ src/sil164/sil164.c | 5 +++++
+ src/tfp410/tfp410.c | 5 +++++
+ uxa/uxa-priv.h | 31 ++++++++++++++++++++++++++++++-
+ 7 files changed, 59 insertions(+), 1 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 077c1ff..3857470 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -101,6 +101,10 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
+
+ # Checks for pkg-config packages
+ PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6 xproto fontsproto $REQUIRED_MODULES])
++PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
++ HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]),
++ HAVE_XEXTPROTO_71="no")
++AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ])
+
+ sdkdir=$(pkg-config --variable=sdkdir xorg-server)
+ drm_cflags=$(pkg-config --cflags libdrm)
+diff --git a/src/ch7017/ch7017.c b/src/ch7017/ch7017.c
+index 759fc24..01e414f 100644
+--- a/src/ch7017/ch7017.c
++++ b/src/ch7017/ch7017.c
+@@ -39,8 +39,13 @@
+ #include "miscstruct.h"
+ #include "xf86i2c.h"
+ #include "xf86Crtc.h"
++#ifdef HAVE_XEXTPROTO_71
++#include <X11/extensions/dpmsconst.h>
++#else
+ #define DPMS_SERVER
+ #include <X11/extensions/dpms.h>
++#endif
++
+
+ #include "../i2c_vid.h"
+ #include "ch7017_reg.h"
+diff --git a/src/ch7xxx/ch7xxx.c b/src/ch7xxx/ch7xxx.c
+index 8a439e4..13ba102 100644
+--- a/src/ch7xxx/ch7xxx.c
++++ b/src/ch7xxx/ch7xxx.c
+@@ -39,8 +39,13 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #include "miscstruct.h"
+ #include "xf86i2c.h"
+ #include "xf86Crtc.h"
++#ifdef HAVE_XEXTPROTO_71
++#include <X11/extensions/dpmsconst.h>
++#else
+ #define DPMS_SERVER
+ #include <X11/extensions/dpms.h>
++#endif
++
+
+ #include "../i2c_vid.h"
+ #include "ch7xxx.h"
+diff --git a/src/ivch/ivch.c b/src/ivch/ivch.c
+index 873afcc..dffe334 100644
+--- a/src/ivch/ivch.c
++++ b/src/ivch/ivch.c
+@@ -36,8 +36,13 @@
+ #include "miscstruct.h"
+ #include "xf86i2c.h"
+ #include "xf86Crtc.h"
++#ifdef HAVE_XEXTPROTO_71
++#include <X11/extensions/dpmsconst.h>
++#else
+ #define DPMS_SERVER
+ #include <X11/extensions/dpms.h>
++#endif
++
+ #include <unistd.h>
+
+ #include "../i2c_vid.h"
+diff --git a/src/sil164/sil164.c b/src/sil164/sil164.c
+index 410a681..c90bed3 100644
+--- a/src/sil164/sil164.c
++++ b/src/sil164/sil164.c
+@@ -40,8 +40,13 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #include "miscstruct.h"
+ #include "xf86i2c.h"
+ #include "xf86Crtc.h"
++#ifdef HAVE_XEXTPROTO_71
++#include <X11/extensions/dpmsconst.h>
++#else
+ #define DPMS_SERVER
+ #include <X11/extensions/dpms.h>
++#endif
++
+
+ #include "../i2c_vid.h"
+ #include "sil164.h"
+diff --git a/src/tfp410/tfp410.c b/src/tfp410/tfp410.c
+index c2c4fc3..4d3bb8a 100644
+--- a/src/tfp410/tfp410.c
++++ b/src/tfp410/tfp410.c
+@@ -39,8 +39,13 @@
+ #include "miscstruct.h"
+ #include "xf86i2c.h"
+ #include "xf86Crtc.h"
++#ifdef HAVE_XEXTPROTO_71
++#include <X11/extensions/dpmsconst.h>
++#else
+ #define DPMS_SERVER
+ #include <X11/extensions/dpms.h>
++#endif
++
+
+ #include "../i2c_vid.h"
+ #include "tfp410.h"
+diff --git a/uxa/uxa-priv.h b/uxa/uxa-priv.h
+index 3d2b776..d469474 100644
+--- a/uxa/uxa-priv.h
++++ b/uxa/uxa-priv.h
+@@ -42,9 +42,13 @@
+ #define NEED_EVENTS
+ #include <X11/Xproto.h>
+ #ifdef MITSHM
++#ifdef HAVE_XEXTPROTO_71
++#include <X11/extensions/shm.h>
++#else
+ #define _XSHM_SERVER_
+ #include <X11/extensions/shmstr.h>
+ #endif
++#endif
+ #include "scrnintstr.h"
+ #include "pixmapstr.h"
+ #include "windowstr.h"
+@@ -321,9 +325,34 @@ uxa_get_image (DrawablePtr pDrawable, int x, int y, int w, int h,
+ extern const GCOps uxa_ops;
+
+ #ifdef MITSHM
++/* XXX these come from shmint.h, which isn't exported by the server */
++
++#ifdef HAVE_XEXTPROTO_71
++/* Up to xextproto 7.1, these were provided in shmstr.h */
++typedef struct _ShmFuncs {
++ PixmapPtr (* CreatePixmap)(ScreenPtr pScreen,
++ int width,
++ int height,
++ int depth,
++ char *addr);
++ void (* PutImage)(DrawablePtr dst,
++ GCPtr pGC,
++ int depth,
++ unsigned int format,
++ int w,
++ int h,
++ int sx,
++ int sy,
++ int sw,
++ int sh,
++ int dx,
++ int dy,
++ char *data);
++} ShmFuncs, *ShmFuncsPtr;
++#endif
++
+ extern ShmFuncs uxa_shm_funcs;
+
+-/* XXX these come from shmint.h, which isn't exported by the server */
+ void
+ ShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs);
+
+--
+1.6.3.3
+
diff --git a/x11-drivers/xf86-video-intel/xf86-video-intel-2.7.99.902-r1.ebuild b/x11-drivers/xf86-video-intel/xf86-video-intel-2.7.99.902-r1.ebuild
new file mode 100644
index 000000000000..64753b9c5c65
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/xf86-video-intel-2.7.99.902-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-intel/xf86-video-intel-2.7.99.902-r1.ebuild,v 1.1 2009/07/20 21:29:02 remi Exp $
+
+# Must be before x-modular eclass is inherited
+#SNAPSHOT="yes"
+
+inherit x-modular
+
+DESCRIPTION="X.Org driver for Intel cards"
+
+KEYWORDS="~amd64 ~ia64 ~x86 ~x86-fbsd"
+IUSE="dri"
+
+RDEPEND=">=x11-base/xorg-server-1.6
+ x11-libs/libXvMC"
+DEPEND="${RDEPEND}
+ >=x11-proto/dri2proto-1.99.3
+ x11-proto/fontsproto
+ x11-proto/randrproto
+ x11-proto/renderproto
+ x11-proto/xineramaproto
+ x11-proto/glproto
+ x11-proto/xextproto
+ x11-proto/xproto
+ dri? ( x11-proto/xf86driproto
+ >=x11-libs/libdrm-2.4.11
+ x11-libs/libX11 )"
+
+PATCHES=(
+"${FILESDIR}/${PV}-0001-Fix-XV-scan-line-calculation-when-rotated.patch"
+"${FILESDIR}/${PV}-0002-Reset-framebuffer-offset-when-rebinding-aperture-227.patch"
+"${FILESDIR}/${PV}-0003-Use-batch_start_atomic-to-fix-batchbuffer-wrapping-p.patch"
+"${FILESDIR}/${PV}-0004-Fix-915-class-Render-after-the-8xx-class-Render-fix.patch"
+"${FILESDIR}/${PV}-0005-Really-fix-i915-render.-Fail-at-commit-amend.patch"
+"${FILESDIR}/${PV}-0006-accessing-a-pixmap-if-prepare_access-fails-is-verbot.patch"
+"${FILESDIR}/${PV}-0007-Update-to-xextproto-7.1-support.patch"
+)
+
+pkg_setup() {
+ CONFIGURE_OPTIONS="$(use_enable dri)"
+}