[arch-commits] Commit in xf86-video-intel/trunk (2.7-branch.patch PKGBUILD)

Jan de Groot jgc at archlinux.org
Fri May 15 15:17:41 EDT 2009


    Date: Friday, May 15, 2009 @ 15:17:41
  Author: jgc
Revision: 39371

upgpkg: xf86-video-intel 2.7.1-1

Modified:
  xf86-video-intel/trunk/PKGBUILD
Deleted:
  xf86-video-intel/trunk/2.7-branch.patch

------------------+
 2.7-branch.patch |  436 -----------------------------------------------------
 PKGBUILD         |   20 +-
 2 files changed, 9 insertions(+), 447 deletions(-)

Deleted: 2.7-branch.patch
===================================================================
--- 2.7-branch.patch	2009-05-15 18:28:10 UTC (rev 39370)
+++ 2.7-branch.patch	2009-05-15 19:17:41 UTC (rev 39371)
@@ -1,436 +0,0 @@
-From 296a986e5258e2fd13ec494071b7063bd639cd68 Mon Sep 17 00:00:00 2001
-From: Zhenyu Wang <zhenyu.z.wang at intel.com>
-Date: Mon, 23 Mar 2009 11:19:58 +0000
-Subject: KMS: hook up output properties for randr
-
-This gets output properties from kernel, then hook them up
-for randr. So we can control output properties through randr
-like in UMS.
-
-Signed-off-by: Zhenyu Wang <zhenyu.z.wang at intel.com>
----
-diff --git a/src/drmmode_display.c b/src/drmmode_display.c
-index a276ff7..7b97a64 100644
---- a/src/drmmode_display.c
-+++ b/src/drmmode_display.c
-@@ -35,6 +35,7 @@
- #include "i830.h"
- #include "intel_bufmgr.h"
- #include "xf86drmMode.h"
-+#include "X11/Xatom.h"
- 
- typedef struct {
-     int fd;
-@@ -52,11 +53,20 @@ typedef struct {
- } drmmode_crtc_private_rec, *drmmode_crtc_private_ptr;
- 
- typedef struct {
-+    drmModePropertyPtr mode_prop;
-+    uint64_t value;
-+    int num_atoms; /* if range prop, num_atoms == 1; if enum prop, num_atoms == num_enums + 1 */
-+    Atom *atoms;
-+} drmmode_prop_rec, *drmmode_prop_ptr;
-+
-+typedef struct {
-     drmmode_ptr drmmode;
-     int output_id;
-     drmModeConnectorPtr mode_output;
-     drmModeEncoderPtr mode_encoder;
-     drmModePropertyBlobPtr edid_blob;
-+    int num_props;
-+    drmmode_prop_ptr props;
- } drmmode_output_private_rec, *drmmode_output_private_ptr;
- 
- static void
-@@ -508,9 +518,15 @@ static void
- drmmode_output_destroy(xf86OutputPtr output)
- {
- 	drmmode_output_private_ptr drmmode_output = output->driver_private;
-+	int i;
- 
- 	if (drmmode_output->edid_blob)
- 		drmModeFreePropertyBlob(drmmode_output->edid_blob);
-+	for (i = 0; i < drmmode_output->num_props; i++) {
-+	    drmModeFreeProperty(drmmode_output->props[i].mode_prop);
-+	    xfree(drmmode_output->props[i].atoms);
-+	}
-+	xfree(drmmode_output->props);
- 	drmModeFreeConnector(drmmode_output->mode_output);
- 	xfree(drmmode_output);
- 	output->driver_private = NULL;
-@@ -542,7 +558,162 @@ drmmode_output_dpms(xf86OutputPtr output, int mode)
- 	}
- }
- 
-+static Bool
-+drmmode_property_ignore(drmModePropertyPtr prop)
-+{
-+    if (!prop)
-+	return TRUE;
-+    /* ignore blob prop */
-+    if (prop->flags & DRM_MODE_PROP_BLOB)
-+	return TRUE;
-+    /* ignore standard property */
-+    if (!strcmp(prop->name, "EDID") ||
-+	    !strcmp(prop->name, "DPMS"))
-+	return TRUE;
-+
-+    return FALSE;
-+}
-+
-+static void
-+drmmode_output_create_resources(xf86OutputPtr output)
-+{
-+    drmmode_output_private_ptr drmmode_output = output->driver_private;
-+    drmModeConnectorPtr mode_output = drmmode_output->mode_output;
-+    drmmode_ptr drmmode = drmmode_output->drmmode;
-+    drmModePropertyPtr drmmode_prop;
-+    int i, j, err;
-+
-+    drmmode_output->props = xcalloc(mode_output->count_props, sizeof(drmmode_prop_rec));
-+    if (!drmmode_output->props)
-+	return;
-+
-+    drmmode_output->num_props = 0;
-+    for (i = 0, j = 0; i < mode_output->count_props; i++) {
-+	drmmode_prop = drmModeGetProperty(drmmode->fd, mode_output->props[i]);
-+	if (drmmode_property_ignore(drmmode_prop)) {
-+	    drmModeFreeProperty(drmmode_prop);
-+	    continue;
-+	}
-+	drmmode_output->props[j].mode_prop = drmmode_prop;
-+	drmmode_output->props[j].value = mode_output->prop_values[i];
-+	drmmode_output->num_props++;
-+	j++;
-+    }
-+
-+    for (i = 0; i < drmmode_output->num_props; i++) {
-+	drmmode_prop_ptr p = &drmmode_output->props[i];
-+	drmmode_prop = p->mode_prop;
-+
-+	if (drmmode_prop->flags & DRM_MODE_PROP_RANGE) {
-+	    INT32 range[2];
-+
-+	    p->num_atoms = 1;
-+	    p->atoms = xcalloc(p->num_atoms, sizeof(Atom));
-+	    if (!p->atoms)
-+		continue;
-+	    p->atoms[0] = MakeAtom(drmmode_prop->name, strlen(drmmode_prop->name), TRUE);
-+	    range[0] = drmmode_prop->values[0];
-+	    range[1] = drmmode_prop->values[1];
-+	    err = RRConfigureOutputProperty(output->randr_output, p->atoms[0],
-+		    FALSE, TRUE,
-+		    drmmode_prop->flags & DRM_MODE_PROP_IMMUTABLE ? TRUE : FALSE,
-+		    2, range);
-+	    if (err != 0) {
-+		xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
-+			"RRConfigureOutputProperty error, %d\n", err);
-+	    }
-+	    err = RRChangeOutputProperty(output->randr_output, p->atoms[0],
-+		    XA_INTEGER, 32, PropModeReplace, 1, &p->value, FALSE, TRUE);
-+	    if (err != 0) {
-+		xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
-+			"RRChangeOutputProperty error, %d\n", err);
-+	    }
-+	} else if (drmmode_prop->flags & DRM_MODE_PROP_ENUM) {
-+	    p->num_atoms = drmmode_prop->count_enums + 1;
-+	    p->atoms = xcalloc(p->num_atoms, sizeof(Atom));
-+	    if (!p->atoms)
-+		continue;
-+	    p->atoms[0] = MakeAtom(drmmode_prop->name, strlen(drmmode_prop->name), TRUE);
-+	    for (j = 1; j <= drmmode_prop->count_enums; j++) {
-+		struct drm_mode_property_enum *e = &drmmode_prop->enums[j-1];
-+		p->atoms[j] = MakeAtom(e->name, strlen(e->name), TRUE);
-+	    }
-+	    err = RRConfigureOutputProperty(output->randr_output, p->atoms[0],
-+		    FALSE, FALSE,
-+		    drmmode_prop->flags & DRM_MODE_PROP_IMMUTABLE ? TRUE : FALSE,
-+		    p->num_atoms - 1, (INT32 *)&p->atoms[1]);
-+	    if (err != 0) {
-+		xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
-+			"RRConfigureOutputProperty error, %d\n", err);
-+	    }
-+	    for (j = 0; j < drmmode_prop->count_enums; j++)
-+		if (drmmode_prop->enums[j].value == p->value)
-+		    break;
-+	    /* there's always a matching value */
-+	    err = RRChangeOutputProperty(output->randr_output, p->atoms[0],
-+		    XA_ATOM, 32, PropModeReplace, 1, &p->atoms[j+1], FALSE, TRUE);
-+	    if (err != 0) {
-+		xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
-+			"RRChangeOutputProperty error, %d\n", err);
-+	    }
-+	}
-+    }
-+}
-+
-+static Bool
-+drmmode_output_set_property(xf86OutputPtr output, Atom property,
-+		RRPropertyValuePtr value)
-+{
-+    drmmode_output_private_ptr drmmode_output = output->driver_private;
-+    drmmode_ptr drmmode = drmmode_output->drmmode;
-+    int i;
-+
-+    for (i = 0; i < drmmode_output->num_props; i++) {
-+	drmmode_prop_ptr p = &drmmode_output->props[i];
-+
-+	if (p->atoms[0] != property)
-+	    continue;
-+
-+	if (p->mode_prop->flags & DRM_MODE_PROP_RANGE) {
-+	    uint32_t val;
-+
-+	    if (value->type != XA_INTEGER || value->format != 32 ||
-+		    value->size != 1)
-+		return FALSE;
-+	    val = *(uint32_t *)value->data;
-+
-+	    drmModeConnectorSetProperty(drmmode->fd, drmmode_output->output_id,
-+		    p->mode_prop->prop_id, (uint64_t)val);
-+	    return TRUE;
-+	} else if (p->mode_prop->flags & DRM_MODE_PROP_ENUM) {
-+	    Atom	atom;
-+	    const char	*name;
-+	    int		j;
-+
-+	    if (value->type != XA_ATOM || value->format != 32 || value->size != 1)
-+		return FALSE;
-+	    memcpy(&atom, value->data, 4);
-+	    name = NameForAtom(atom);
-+
-+	    /* search for matching name string, then set its value down */
-+	    for (j = 0; j < p->mode_prop->count_enums; j++) {
-+		if (!strcmp(p->mode_prop->enums[j].name, name)) {
-+		    drmModeConnectorSetProperty(drmmode->fd, drmmode_output->output_id,
-+			    p->mode_prop->prop_id, p->mode_prop->enums[j].value);
-+		    return TRUE;
-+		}
-+	    }
-+	}
-+    }
-+    /* no property found? */
-+    return FALSE;
-+}
-+
- static const xf86OutputFuncsRec drmmode_output_funcs = {
-+	.create_resources = drmmode_output_create_resources,
-+#ifdef RANDR_12_INTERFACE
-+	.set_property = drmmode_output_set_property,
-+#endif
- 	.dpms = drmmode_output_dpms,
- #if 0
- 
---
-cgit v0.8.2
-From 115fc9a7d79da07301b96d9fc5c513d33734d273 Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp at keithp.com>
-Date: Fri, 01 May 2009 18:44:13 +0000
-Subject: intel_batch_start_atomic: fix size passed to intel_batch_require_space (*4)
-
-intel_batch_start_atomic takes an argument in 32-bit units, and so it must
-multiply that by 4 before passing it to intel_batch_require_space, which
-takes an argument in bytes.
-
-We should figure out what units we want to use and use the same everywhere...
-
-Signed-off-by: Keith Packard <keithp at keithp.com>
-(cherry picked from commit 1142353b487c155a31011923fbd08ec67e60f505)
----
-diff --git a/src/i830_batchbuffer.h b/src/i830_batchbuffer.h
-index a72786e..ec87084 100644
---- a/src/i830_batchbuffer.h
-+++ b/src/i830_batchbuffer.h
-@@ -56,7 +56,7 @@ intel_batch_start_atomic(ScrnInfoPtr pScrn, unsigned int sz)
-     I830Ptr pI830 = I830PTR(pScrn);
- 
-     assert(!pI830->in_batch_atomic);
--    intel_batch_require_space(pScrn, pI830, sz);
-+    intel_batch_require_space(pScrn, pI830, sz * 4);
- 
-     pI830->in_batch_atomic = TRUE;
-     pI830->batch_atomic_limit = pI830->batch_used + sz * 4;
---
-cgit v0.8.2
-From a066cfb0be6e6b20a27eb4ba17f503f13e65e082 Mon Sep 17 00:00:00 2001
-From: Carl Worth <cworth at cworth.org>
-Date: Wed, 06 May 2009 16:17:46 +0000
-Subject: Hold reference to video binding table until all rects are painted.
-
-The optimization of unreferencing the binding table when the relocation is
-posted causes the object to be dereferenced for each box in the clip list,
-causing general chaos in the buffer manager. It's easier to just hold a
-reference to the object until all of the boxes are painted and then drop it.
-
-Signed-off-by: Keith Packard <keithp at keithp.com>
-(cherry picked from commit 11a853bd8e5d907fe7f5bd907453bcdac9032861)
-
-Conflicts:
-
-	src/i965_video.c
----
-diff --git a/src/i965_video.c b/src/i965_video.c
-index f6020d4..c0a69fd 100644
---- a/src/i965_video.c
-+++ b/src/i965_video.c
-@@ -795,7 +795,6 @@ i965_emit_video_setup(ScrnInfoPtr pScrn, drm_intel_bo *bind_bo, int n_src_surf)
-     OUT_BATCH(0); /* sf */
-     /* Only the PS uses the binding table */
-     OUT_RELOC(bind_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
--    drm_intel_bo_unreference(bind_bo);
- 
-     /* Blend constant color (magenta is fun) */
-     OUT_BATCH(BRW_3DSTATE_CONSTANT_COLOR | 3);
-@@ -1161,6 +1160,10 @@ I965DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
-     }
- 
-     i830MarkSync(pScrn);
-+
-+    /* release reference once we're finished */
-+    drm_intel_bo_unreference(bind_bo);
-+
- #if WATCH_STATS
-     i830_dump_error_state(pScrn);
- #endif
---
-cgit v0.8.2
-From efda7c776b95f8634cd6a2fed88d526de80176bc Mon Sep 17 00:00:00 2001
-From: Carl Worth <cworth at cworth.org>
-Date: Wed, 06 May 2009 16:37:34 +0000
-Subject: Split i915 textured video commands to fit into batch buffers.
-
-i915 textured video commands are quite long, but must be contained in the
-same batch buffer as the 3D setup commands. When the number of clip rects
-for the video becomes too large for the associated commands to fit in the
-same batch buffer, this change breaks the sequence into pieces, ensuring
-that each batch contains the necessary setup sequence.
-
-Signed-off-by: Keith Packard <keithp at keithp.com>
-(cherry picked from commit 8255cca2c9092f7ecb798944aa8f03fa3efcfa6c)
-
-Conflicts:
-
-	src/i915_video.c
----
-diff --git a/src/i915_video.c b/src/i915_video.c
-index 93e0c86..afa1055 100644
---- a/src/i915_video.c
-+++ b/src/i915_video.c
-@@ -50,7 +50,8 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
-    I830Ptr pI830 = I830PTR(pScrn);
-    uint32_t format, ms3, s5;
-    BoxPtr pbox = REGION_RECTS(dstRegion);
--   int nbox = REGION_NUM_RECTS(dstRegion);
-+   int nbox_total = REGION_NUM_RECTS(dstRegion);
-+   int nbox_this_time;
-    int dxo, dyo, pix_xoff, pix_yoff;
-    Bool planar;
- 
-@@ -73,7 +74,17 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
-       return;
-    }
- 
--   intel_batch_start_atomic(pScrn, 200 + 20 * nbox);
-+#define BYTES_FOR_BOXES(n)	((200 + (n) * 20) * 4)
-+#define BOXES_IN_BYTES(s)	((((s)/4) - 200) / 20)
-+#define BATCH_BYTES(p)		((p)->batch_bo->size - 16)
-+
-+   while (nbox_total) {
-+	nbox_this_time = nbox_total;
-+	if (BYTES_FOR_BOXES(nbox_this_time) > BATCH_BYTES(pI830))
-+		nbox_this_time = BOXES_IN_BYTES(BATCH_BYTES(pI830));
-+	nbox_total -= nbox_this_time;
-+
-+   intel_batch_start_atomic(pScrn, 200 + 20 * nbox_this_time);
- 
-    IntelEmitInvarientState(pScrn);
-    pI830->last_3d = LAST_3D_VIDEO;
-@@ -366,7 +377,7 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
-    dxo = dstRegion->extents.x1;
-    dyo = dstRegion->extents.y1;
- 
--   while (nbox--)
-+   while (nbox_this_time--)
-    {
-       int box_x1 = pbox->x1;
-       int box_y1 = pbox->y1;
-@@ -415,6 +426,7 @@ I915DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
-    }
- 
-    intel_batch_end_atomic(pScrn);
-+   }
- 
-    i830MarkSync(pScrn);
- }
---
-cgit v0.8.2
-From 77153d690a3673fdee7bef8e567816b754c43081 Mon Sep 17 00:00:00 2001
-From: Albert Damen <albrt at gmx.net>
-Date: Sun, 05 Apr 2009 14:36:35 +0000
-Subject: Fix crash with XV with large virtual display
-
-If a virtual display with width > 2048 is used, the first time
-an XV buffer is needed will result in a BadAlloc error message,
-but the next time X would crash.
-
-Signed-off-by: Eric Anholt <eric at anholt.net>
-(cherry picked from commit d7ca870e1ce251d42e3689a8e1e7d080ab1325fb)
----
-diff --git a/src/i830_video.c b/src/i830_video.c
-index 4ed3047..a62d7a1 100644
---- a/src/i830_video.c
-+++ b/src/i830_video.c
-@@ -2392,6 +2392,7 @@ I830PutImage(ScrnInfoPtr pScrn,
-                 return BadAlloc;
-             if (!pPriv->textured && drm_intel_bo_pin(pPriv->buf, 4096) != 0) {
-                 drm_intel_bo_unreference(pPriv->buf);
-+                pPriv->buf = NULL;
-                 xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                            "Failed to pin xv buffer\n");
-                 return BadAlloc;
---
-cgit v0.8.2
-From ca63a5d4afd8482d280d8d64c58021e568931e27 Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp at keithp.com>
-Date: Fri, 01 May 2009 18:50:17 +0000
-Subject: 3D_STATE_VERTEX_BUFFERS takes four 32-bit values, not three.
-
-The spec says this command takes an extra (mbz) 32-bit value, so let's
-provide it with one.
-
-Signed-off-by: Keith Packard <keithp at keithp.com>
-(cherry picked from commit ed492131c13715b73c14d328d0668120acb58b40)
----
-diff --git a/src/i965_video.c b/src/i965_video.c
-index c0a69fd..7b52de7 100644
---- a/src/i965_video.c
-+++ b/src/i965_video.c
-@@ -1130,15 +1130,16 @@ I965DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
- 
- 	i965_emit_video_setup(pScrn, bind_bo, n_src_surf);
- 
--	BEGIN_BATCH(10);
-+	BEGIN_BATCH(12);
- 	/* Set up the pointer to our vertex buffer */
--	OUT_BATCH(BRW_3DSTATE_VERTEX_BUFFERS | 2);
-+	OUT_BATCH(BRW_3DSTATE_VERTEX_BUFFERS | 3);
- 	/* four 32-bit floats per vertex */
- 	OUT_BATCH((0 << VB0_BUFFER_INDEX_SHIFT) |
- 		  VB0_VERTEXDATA |
- 		  ((4 * 4) << VB0_BUFFER_PITCH_SHIFT));
- 	OUT_RELOC(vb_bo, I915_GEM_DOMAIN_VERTEX, 0, 0);
- 	OUT_BATCH(3); /* four corners to our rectangle */
-+	OUT_BATCH(0); /* reserved */
- 
- 	OUT_BATCH(BRW_3DPRIMITIVE |
- 		  BRW_3DPRIMITIVE_VERTEX_SEQUENTIAL |
-@@ -1150,6 +1151,7 @@ I965DisplayVideoTextured(ScrnInfoPtr pScrn, I830PortPrivPtr pPriv, int id,
- 	OUT_BATCH(1); /* single instance */
- 	OUT_BATCH(0); /* start instance location */
- 	OUT_BATCH(0); /* index buffer offset, ignored */
-+	OUT_BATCH(MI_NOOP);
- 	ADVANCE_BATCH();
- 
- 	intel_batch_end_atomic(pScrn);
---
-cgit v0.8.2

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2009-05-15 18:28:10 UTC (rev 39370)
+++ PKGBUILD	2009-05-15 19:17:41 UTC (rev 39371)
@@ -2,26 +2,24 @@
 # Maintainer: Alexander Baldeck <alexander at archlinux.org>
 # Maintainer: Jan de Groot <jgc at archlinux.org>
 pkgname=xf86-video-intel
-pkgver=2.7.0
-pkgrel=3
+pkgver=2.7.1
+pkgrel=1
 pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 license=('custom')
-depends=('intel-dri>=7.4.1' 'libpciaccess>=0.10.6' 'libdrm>=2.4.9' 'libxvmc')
-makedepends=('pkgconfig' 'xorg-server>=1.6.1' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.4.1' 'xineramaproto')
-conflicts=('xorg-server<1.6.0' 'xf86-video-i810' 'xf86-video-intel-legacy')
+depends=('intel-dri>=7.4.2' 'libpciaccess>=0.10.6' 'libdrm>=2.4.9' 'libxvmc')
+makedepends=('pkgconfig' 'xorg-server>=1.6.1' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.4.2' 'xineramaproto')
+conflicts=('xorg-server<1.6.1' 'xf86-video-i810' 'xf86-video-intel-legacy')
 options=('!libtool')
 groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE
-	2.7-branch.patch)
-md5sums=('5832172ac69b9a066a202e1578a5d3c8'
-	 'b924480931774dec14515e270db4924d'
-	 '8c941e35cb56426900cade66b3c0f055')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+	LICENSE)
+md5sums=('0eed17138da18ff1fb2b8ab0f076d957'
+	 'b924480931774dec14515e270db4924d')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  patch -Np1 -i "${srcdir}/2.7-branch.patch" || return 1
   ./configure --prefix=/usr --enable-dri || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1



More information about the arch-commits mailing list