diff options
author | root <root@rshg054.dnsready.net> | 2012-07-29 00:03:59 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-07-29 00:03:59 +0000 |
commit | ddab05fd84b7fa1d67fcd18b532f0427189d8df1 (patch) | |
tree | 3a7175c54dfa9c4ae09f2b009b209134af81ba63 /extra/xf86-video-intel | |
parent | 4704d1255f08718ed432ba919b4087d0a52ce5a7 (diff) |
Sun Jul 29 00:03:59 UTC 2012
Diffstat (limited to 'extra/xf86-video-intel')
-rw-r--r-- | extra/xf86-video-intel/PKGBUILD | 18 | ||||
-rw-r--r-- | extra/xf86-video-intel/fix_gen4.diff | 142 |
2 files changed, 149 insertions, 11 deletions
diff --git a/extra/xf86-video-intel/PKGBUILD b/extra/xf86-video-intel/PKGBUILD index 342454cfc..caade620d 100644 --- a/extra/xf86-video-intel/PKGBUILD +++ b/extra/xf86-video-intel/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 164055 2012-07-25 15:11:19Z andyrtr $ +# $Id: PKGBUILD 164223 2012-07-27 19:15:17Z andyrtr $ # Maintainer: AndyRTR <andyrtr@archlinux.org> # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=xf86-video-intel -pkgver=2.20.1 -pkgrel=3 +pkgver=2.20.2 +pkgrel=2 arch=(i686 x86_64) url="http://xorg.freedesktop.org/" license=('custom') @@ -18,17 +18,13 @@ conflicts=('xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xorg-server<1.12.0' 'x options=('!libtool') groups=('xorg-drivers' 'xorg') source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2 - gmux_backlight.diff - sna_backlight_fixes.diff) -sha256sums=('de340a527dfa26bba6f79b423c2fe2b1d70657e46fa3fb468613c047443ff424' - '87383122dae69512f86039e9d72110bd6bf4cf717756a31b34862c200277b31b' - 'a4a6bc1c4a6b79c80c56764eed8ab318a587ed554d5d9a381cc7238ab884ec04') + fix_gen4.diff) +sha256sums=('4c30cce0b5f7b427d76898c439f2c9fd31a8b45babd8ef82ec4c0004ae0a26a9' + '0c5b98e4980c8108aee12b1e46a78c23029034439dcd277f8ae1264ca3fff8a4') build() { cd "${srcdir}/${pkgname}-${pkgver}" - # https://bugs.freedesktop.org/show_bug.cgi?id=52423 - patch -Np1 -i ${srcdir}/gmux_backlight.diff - patch -Np1 -i ${srcdir}/sna_backlight_fixes.diff + patch -Np1 -i ${srcdir}/fix_gen4.diff ./configure --prefix=/usr \ --enable-dri make diff --git a/extra/xf86-video-intel/fix_gen4.diff b/extra/xf86-video-intel/fix_gen4.diff new file mode 100644 index 000000000..87a2fa8db --- /dev/null +++ b/extra/xf86-video-intel/fix_gen4.diff @@ -0,0 +1,142 @@ +From 73ddd8b0decee444a57f10a11f05deebba686649 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Fri, 27 Jul 2012 11:43:00 +0000 +Subject: sna/gen4: Further refinement to the GT allocation + +Still hunting for why gen4 fails utterly. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c +index 25229e1..1a860bd 100644 +--- a/src/sna/gen4_render.c ++++ b/src/sna/gen4_render.c +@@ -79,8 +79,8 @@ + #define URB_CS_ENTRY_SIZE 1 + #define URB_CS_ENTRIES 0 + +-#define URB_VS_ENTRY_SIZE 1 // each 512-bit row +-#define URB_VS_ENTRIES 32 // we needs at least 8 entries ++#define URB_VS_ENTRY_SIZE 1 ++#define URB_VS_ENTRIES 32 + + #define URB_GS_ENTRY_SIZE 0 + #define URB_GS_ENTRIES 0 +@@ -89,25 +89,24 @@ + #define URB_CLIP_ENTRIES 0 + + #define URB_SF_ENTRY_SIZE 2 +-#define URB_SF_ENTRIES 8 ++#define URB_SF_ENTRIES 64 + + /* + * this program computes dA/dx and dA/dy for the texture coordinates along + * with the base texture coordinate. It was extracted from the Mesa driver + */ + +-#define SF_KERNEL_NUM_GRF 16 +- +-#define PS_KERNEL_NUM_GRF 32 ++#define SF_KERNEL_NUM_GRF 16 ++#define PS_KERNEL_NUM_GRF 32 + + static const struct gt_info { + uint32_t max_sf_threads; + uint32_t max_wm_threads; + uint32_t urb_size; + } gen4_gt_info = { +- 16, 32, 256, ++ 24, 32, 256, + }, g4x_gt_info = { +- 32, 50, 384, ++ 24, 50, 384, + }; + + static const uint32_t sf_kernel[][4] = { +@@ -1455,10 +1454,10 @@ gen4_emit_state(struct sna *sna, + const struct sna_composite_op *op, + uint16_t wm_binding_table) + { ++ gen4_emit_drawing_rectangle(sna, op); + gen4_emit_binding_table(sna, wm_binding_table); + gen4_emit_pipelined_pointers(sna, op, op->op, op->u.gen4.wm_kernel); + gen4_emit_vertex_elements(sna, op); +- gen4_emit_drawing_rectangle(sna, op); + + if (kgem_bo_is_dirty(op->src.bo) || kgem_bo_is_dirty(op->mask.bo)) { + DBG(("%s: flushing dirty (%d, %d)\n", __FUNCTION__, +-- +cgit v0.9.0.2-2-gbebe +From fb385745a2347f8966765567e78229d67ddc8d60 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Fri, 27 Jul 2012 12:24:04 +0000 +Subject: sna/gen4: Move the common vertex_offset==0 check into the flush() + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c +index 1a860bd..58d4422 100644 +--- a/src/sna/gen4_render.c ++++ b/src/sna/gen4_render.c +@@ -338,7 +338,8 @@ static void gen4_magic_ca_pass(struct sna *sna, + + static void gen4_vertex_flush(struct sna *sna) + { +- assert(sna->render_state.gen4.vertex_offset); ++ if (sna->render_state.gen4.vertex_offset == 0) ++ return; + + DBG(("%s[%x] = %d\n", __FUNCTION__, + 4*sna->render_state.gen4.vertex_offset, +@@ -359,8 +360,7 @@ static int gen4_vertex_finish(struct sna *sna) + + bo = sna->render.vbo; + if (bo) { +- if (sna->render_state.gen4.vertex_offset) +- gen4_vertex_flush(sna); ++ gen4_vertex_flush(sna); + + for (i = 0; i < ARRAY_SIZE(sna->render.vertex_reloc); i++) { + if (sna->render.vertex_reloc[i]) { +@@ -1783,8 +1783,7 @@ gen4_render_video(struct sna *sna, + } + priv->clear = false; + +- if (sna->render_state.gen4.vertex_offset) +- gen4_vertex_flush(sna); ++ gen4_vertex_flush(sna); + return true; + } + +@@ -2693,8 +2692,7 @@ fastcall static void + gen4_render_composite_spans_done(struct sna *sna, + const struct sna_composite_spans_op *op) + { +- if (sna->render_state.gen4.vertex_offset) +- gen4_vertex_flush(sna); ++ gen4_vertex_flush(sna); + + DBG(("%s()\n", __FUNCTION__)); + +@@ -3072,8 +3070,7 @@ gen4_render_copy_blt(struct sna *sna, + static void + gen4_render_copy_done(struct sna *sna, const struct sna_copy_op *op) + { +- if (sna->render_state.gen4.vertex_offset) +- gen4_vertex_flush(sna); ++ gen4_vertex_flush(sna); + } + + static bool +@@ -3366,8 +3363,7 @@ gen4_render_fill_op_boxes(struct sna *sna, + static void + gen4_render_fill_op_done(struct sna *sna, const struct sna_fill_op *op) + { +- if (sna->render_state.gen4.vertex_offset) +- gen4_vertex_flush(sna); ++ gen4_vertex_flush(sna); + kgem_bo_destroy(&sna->kgem, op->base.src.bo); + } + +-- +cgit v0.9.0.2-2-gbebe |