From e03f4b9bc9da3327de94bc58aa92ecb836c1580d Mon Sep 17 00:00:00 2001 From: root Date: Mon, 11 Jul 2011 23:12:58 +0000 Subject: Mon Jul 11 23:12:58 UTC 2011 --- testing/mesa/PKGBUILD | 8 +++++--- testing/mesa/git_fixes.patch | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 testing/mesa/git_fixes.patch (limited to 'testing') diff --git a/testing/mesa/PKGBUILD b/testing/mesa/PKGBUILD index 4d729c481..07cc07301 100644 --- a/testing/mesa/PKGBUILD +++ b/testing/mesa/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 131009 2011-07-09 13:03:33Z andyrtr $ +# $Id: PKGBUILD 131079 2011-07-10 09:28:29Z andyrtr $ # Maintainer: Jan de Groot # Maintainer: Andreas Radke @@ -14,13 +14,13 @@ if [ "${_git}" = "true" ]; then else pkgver=7.11rc1 fi -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') makedepends=('glproto>=1.4.14' 'libdrm>=2.4.26' 'libxxf86vm>=1.1.1' 'libxdamage>=1.1.3' 'expat>=2.0.1' 'libx11>=1.4.3' 'libxt>=1.1.1' 'gcc-libs>=4.6.1' 'dri2proto>=2.6' 'python2' 'libxml2' 'imake' 'llvm') url="http://mesa3d.sourceforge.net" license=('custom') -source=(LICENSE) +source=(LICENSE git_fixes.patch) if [ "${_git}" = "true" ]; then # mesa git shot from 7.11 branch - see for state: http://cgit.freedesktop.org/mesa/mesa/commit/?h=7.11&id=1ae00c5960af83bea9545a18a1754bad83d5cbd0 #source=(${source[@]} 'ftp://ftp.archlinux.org/other/mesa/mesa-1ae00c5960af83bea9545a18a1754bad83d5cbd0.tar.bz2') @@ -30,12 +30,14 @@ if [ "${_git}" = "true" ]; then ) fi md5sums=('5c65a0fe315dd347e09b1f2826a1df5a' + '62b7e9591737846ff0e98f970ffc8b78' '2246d97eb0cfb1f6d2bf8a54b533d07f') build() { cd ${srcdir}/?esa-* if [ "${_git}" = "true" ]; then + patch -Np1 -i ${srcdir}/git_fixes.patch autoreconf -vfi ./autogen.sh --prefix=/usr \ --with-dri-driverdir=/usr/lib/xorg/modules/dri \ diff --git a/testing/mesa/git_fixes.patch b/testing/mesa/git_fixes.patch new file mode 100644 index 000000000..22372b328 --- /dev/null +++ b/testing/mesa/git_fixes.patch @@ -0,0 +1,36 @@ +From 804995807dfea9cbdbd676e52b95d42715101913 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Fri, 08 Jul 2011 22:30:48 +0000 +Subject: i965/gen4: Fix GPU hangs since the program streaming change. + +This was tricky. We were doing a use-before-initialize of +grf_reg_count, but the value usually got overwritten anyway -- when we +didn't have to do a relocation (typical), or on gen5 when we didn't +have relocations at all. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38771 +Reviewed-by: Kenneth Graunke +(cherry picked from commit d03fdc4cdefdfdc5b59547945704c6037a5061c7) +--- +diff --git a/src/mesa/drivers/dri/i965/brw_vs_state.c b/src/mesa/drivers/dri/i965/brw_vs_state.c +index d5010a2..179ca19 100644 +--- a/src/mesa/drivers/dri/i965/brw_vs_state.c ++++ b/src/mesa/drivers/dri/i965/brw_vs_state.c +@@ -47,6 +47,7 @@ brw_prepare_vs_unit(struct brw_context *brw) + memset(vs, 0, sizeof(*vs)); + + /* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_VS_PROG */ ++ vs->thread0.grf_reg_count = ALIGN(brw->vs.prog_data->total_grf, 16) / 16 - 1; + vs->thread0.kernel_start_pointer = + brw_program_reloc(brw, + brw->vs.state_offset + +@@ -54,7 +55,6 @@ brw_prepare_vs_unit(struct brw_context *brw) + brw->vs.prog_offset + + (vs->thread0.grf_reg_count << 1)) >> 6; + +- vs->thread0.grf_reg_count = ALIGN(brw->vs.prog_data->total_grf, 16) / 16 - 1; + vs->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754; + /* Choosing multiple program flow means that we may get 2-vertex threads, + * which will have the channel mask for dwords 4-7 enabled in the thread, +-- +cgit v0.8.3-6-g21f6 -- cgit v1.2.3-54-g00ecf