xserver-xorg-video-intel: Changes to 'ubuntu-utopic'
debian/changelog | 15 +
debian/patches/bdw-annotate-more-64bit-pointer-locations.diff | 20 -
debian/patches/bdw-clamp-urb-allocations-for-gt3.diff | 9
debian/patches/fix-sna-trapezoids.patch | 122 ++++++++++
debian/patches/series | 1
5 files changed, 154 insertions(+), 13 deletions(-)
New commits:
commit a867797fedf60067a88f4ecfb6e44cc0a270802a
Author: Robert Hooker <sarvatt@ubuntu.com>
Date: Thu May 28 09:58:38 2015 -0400
Update to what's currently in Utopic.
diff --git a/debian/changelog b/debian/changelog
index 680ee24..dd711c9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+xserver-xorg-video-intel (2:2.99.914-1~exp1ubuntu4.4) utopic; urgency=medium
+
+ * fix-sna-trapezoids.patch: Fix client-side shadows for GTK+ 3.14
+ (LP: #1378188).
+
+ -- Marius Gedminas <marius@gedmin.as> Tue, 05 May 2015 11:25:15 +0100
+
+xserver-xorg-video-intel (2:2.99.914-1~exp1ubuntu4.3) utopic; urgency=medium
+
+ * bdw-annotate-more-64bit-pointer-locations.diff
+ bdw-clamp-urb-allocations-for-gt3.diff:
+ Fix BDW GT3. (#1444436)
+
+ -- Timo Aaltonen <tjaalton@debian.org> Wed, 22 Apr 2015 19:57:12 +0300
+
xserver-xorg-video-intel (2:2.99.914-1~exp1ubuntu4.2) utopic-proposed; urgency=medium
[ Timo Aaltonen ]
diff --git a/debian/patches/bdw-annotate-more-64bit-pointer-locations.diff b/debian/patches/bdw-annotate-more-64bit-pointer-locations.diff
index 3ba449b..d42090d 100644
--- a/debian/patches/bdw-annotate-more-64bit-pointer-locations.diff
+++ b/debian/patches/bdw-annotate-more-64bit-pointer-locations.diff
@@ -8,7 +8,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
--- a/src/sna/gen8_render.c
+++ b/src/sna/gen8_render.c
-@@ -474,7 +474,7 @@ gen8_emit_vs_invariant(struct sna *sna)
+@@ -523,7 +523,7 @@ gen8_emit_vs_invariant(struct sna *sna)
OUT_BATCH(GEN8_3DSTATE_VS | (9 - 2));
OUT_BATCH64(0); /* no VS kernel */
OUT_BATCH(0);
@@ -17,7 +17,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
OUT_BATCH(0);
OUT_BATCH(1 << 1); /* pass-through */
OUT_BATCH(1 << 16 | 1 << 21); /* urb write to SBE */
-@@ -500,12 +500,10 @@ static void
+@@ -549,12 +549,10 @@ static void
gen8_emit_hs_invariant(struct sna *sna)
{
OUT_BATCH(GEN8_3DSTATE_HS | (9 - 2));
@@ -32,7 +32,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
OUT_BATCH(0);
OUT_BATCH(0); /* pass-through */
-@@ -541,11 +539,9 @@ static void
+@@ -590,11 +588,9 @@ static void
gen8_emit_ds_invariant(struct sna *sna)
{
OUT_BATCH(GEN8_3DSTATE_DS | (9 - 2));
@@ -46,7 +46,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
OUT_BATCH(0);
OUT_BATCH(0);
OUT_BATCH(0);
-@@ -573,15 +569,13 @@ static void
+@@ -622,15 +618,13 @@ static void
gen8_emit_gs_invariant(struct sna *sna)
{
OUT_BATCH(GEN8_3DSTATE_GS | (10 - 2));
@@ -65,7 +65,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
#if SIM
OUT_BATCH(GEN8_3DSTATE_CONSTANT_GS | (11 - 2));
-@@ -690,13 +684,15 @@ gen8_emit_wm_invariant(struct sna *sna)
+@@ -744,13 +738,15 @@ gen8_emit_wm_invariant(struct sna *sna)
OUT_BATCH(WM_PERSPECTIVE_PIXEL_BARYCENTRIC);
#if SIM
@@ -84,7 +84,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
OUT_BATCH(0);
#endif
-@@ -834,6 +830,7 @@ gen8_emit_cc(struct sna *sna, uint32_t b
+@@ -891,6 +887,7 @@ gen8_emit_cc(struct sna *sna, uint32_t b
} else
OUT_BATCH(PS_BLEND_HAS_WRITEABLE_RT);
@@ -92,7 +92,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
OUT_BATCH(GEN8_3DSTATE_BLEND_STATE_POINTERS | (2 - 2));
OUT_BATCH((render->cc_blend + blend * GEN8_BLEND_STATE_PADDED_SIZE) | 1);
-@@ -896,6 +893,9 @@ gen8_emit_wm(struct sna *sna, int kernel
+@@ -953,6 +950,9 @@ gen8_emit_wm(struct sna *sna, int kernel
wm_kernels[kernel].name,
wm_kernels[kernel].num_surfaces,
kernels[0], kernels[1], kernels[2]));
@@ -102,7 +102,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
OUT_BATCH(GEN8_3DSTATE_PS | (12 - 2));
OUT_BATCH64(kernels[0] ?: kernels[1] ?: kernels[2]);
-@@ -1185,8 +1185,8 @@ static bool gen8_magic_ca_pass(struct sn
+@@ -1242,8 +1242,8 @@ static bool gen8_magic_ca_pass(struct sn
true, true,
op->is_affine));
@@ -113,7 +113,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
OUT_BATCH(sna->render.vertex_index - sna->render.vertex_start);
OUT_BATCH(sna->render.vertex_start);
OUT_BATCH(1); /* single instance */
-@@ -1371,7 +1371,7 @@ static void gen8_emit_primitive(struct s
+@@ -1435,7 +1435,7 @@ static void gen8_emit_primitive(struct s
}
OUT_BATCH(GEN8_3DPRIMITIVE | (7 - 2));
@@ -122,7 +122,7 @@ Date: Wed Oct 22 19:30:21 2014 +0100
sna->render.vertex_offset = sna->kgem.nbatch;
OUT_BATCH(0); /* vertex count, to be filled in later */
OUT_BATCH(sna->render.vertex_index);
-@@ -1712,6 +1712,7 @@ gen8_create_blend_state(struct sna_stati
+@@ -1776,6 +1776,7 @@ gen8_create_blend_state(struct sna_stati
assert(((ptr - base) & 63) == 0);
COMPILE_TIME_ASSERT(sizeof(blend->common) == 4);
COMPILE_TIME_ASSERT(sizeof(blend->rt) == 8);
diff --git a/debian/patches/bdw-clamp-urb-allocations-for-gt3.diff b/debian/patches/bdw-clamp-urb-allocations-for-gt3.diff
index c30b92d..6e176e1 100644
--- a/debian/patches/bdw-clamp-urb-allocations-for-gt3.diff
+++ b/debian/patches/bdw-clamp-urb-allocations-for-gt3.diff
@@ -12,11 +12,14 @@ Date: Wed Oct 22 19:31:10 2014 +0100
--- a/src/sna/gen8_render.c
+++ b/src/sna/gen8_render.c
-@@ -419,19 +419,19 @@ gen8_emit_urb(struct sna *sna)
+@@ -466,21 +466,21 @@ gen8_emit_urb(struct sna *sna)
+ {
+ /* num of VS entries must be divisible by 8 if size < 9 */
OUT_BATCH(GEN8_3DSTATE_URB_VS | (2 - 2));
- OUT_BATCH(960 << URB_ENTRY_NUMBER_SHIFT |
+- OUT_BATCH(1024 << URB_ENTRY_NUMBER_SHIFT |
++ OUT_BATCH(960 << URB_ENTRY_NUMBER_SHIFT |
(2 - 1) << URB_ENTRY_SIZE_SHIFT |
-- 1 << URB_STARTING_ADDRESS_SHIFT);
+- 0 << URB_STARTING_ADDRESS_SHIFT);
+ 4 << URB_STARTING_ADDRESS_SHIFT);
OUT_BATCH(GEN8_3DSTATE_URB_HS | (2 - 2));
diff --git a/debian/patches/fix-sna-trapezoids.patch b/debian/patches/fix-sna-trapezoids.patch
new file mode 100644
index 0000000..6252e64
--- /dev/null
+++ b/debian/patches/fix-sna-trapezoids.patch
@@ -0,0 +1,122 @@
+From 48a33fc379b17eed195875222ad773c911d9dff1 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue, 2 Sep 2014 19:08:36 +0100
+Subject: sna/trapezoids: Use the corrected trapezoid origin for aligned boxes
+
+The rule for the origin of the CompositeTrapezoids routine is the
+upper-left corner of the first trapezoid. Care must be taken in case the
+trapezoid edge is upside down to consider the upper vertex.
+
+Reported-by: "Jasper St. Pierre" <jstpierre@mecheye.net>
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/src/sna/sna_trapezoids_boxes.c b/src/sna/sna_trapezoids_boxes.c
+index 2f7028f..a2045dc 100644
+--- a/src/sna/sna_trapezoids_boxes.c
++++ b/src/sna/sna_trapezoids_boxes.c
+@@ -120,13 +120,16 @@ composite_aligned_boxes(struct sna *sna,
+ BoxRec stack_boxes[64], *boxes;
+ pixman_region16_t region, clip;
+ struct sna_composite_op tmp;
++ int16_t dst_x, dst_y;
+ bool ret = true;
+ int dx, dy, n, num_boxes;
+
+ if (NO_ALIGNED_BOXES)
+ return false;
+
+- DBG(("%s\n", __FUNCTION__));
++ DBG(("%s: pixmap=%ld, nboxes=%d, dx=(%d, %d)\n", __FUNCTION__,
++ get_drawable_pixmap(dst->pDrawable)->drawable.serialNumber,
++ ntrap, dst->pDrawable->x, dst->pDrawable->y));
+
+ boxes = stack_boxes;
+ if (ntrap > (int)ARRAY_SIZE(stack_boxes)) {
+@@ -168,19 +171,20 @@ composite_aligned_boxes(struct sna *sna,
+ if (num_boxes == 0)
+ goto free_boxes;
+
+- DBG(("%s: extents (%d, %d), (%d, %d) offset of (%d, %d)\n",
++ trapezoid_origin(&traps[0].left, &dst_x, &dst_y);
++
++ DBG(("%s: extents (%d, %d), (%d, %d) offset of (%d, %d), origin (%d, %d)\n",
+ __FUNCTION__,
+ region.extents.x1, region.extents.y1,
+ region.extents.x2, region.extents.y2,
+ region.extents.x1 - boxes[0].x1,
+- region.extents.y1 - boxes[0].y1));
+-
+- src_x += region.extents.x1 - boxes[0].x1;
+- src_y += region.extents.y1 - boxes[0].y1;
++ region.extents.y1 - boxes[0].y1,
++ dst_x, dst_y));
+
+ if (!sna_compute_composite_region(&clip,
+ src, NULL, dst,
+- src_x, src_y,
++ src_x + region.extents.x1 - dst_x - dx,
++ src_y + region.extents.y1 - dst_y - dy,
+ 0, 0,
+ region.extents.x1 - dx, region.extents.y1 - dy,
+ region.extents.x2 - region.extents.x1,
+@@ -193,14 +197,24 @@ composite_aligned_boxes(struct sna *sna,
+ if (op == PictOpClear && sna->clear)
+ src = sna->clear;
+
++ DBG(("%s: clipped extents (%d, %d), (%d, %d); now offset by (%d, %d), orgin (%d, %d)\n",
++ __FUNCTION__,
++ clip.extents.x1, clip.extents.y1,
++ clip.extents.x2, clip.extents.y2,
++ clip.extents.x1 - boxes[0].x1,
++ clip.extents.y1 - boxes[0].y1,
++ dst_x, dst_y));
++
+ if (force_fallback ||
+ !sna->render.composite(sna, op, src, NULL, dst,
+- src_x, src_y,
++ src_x + clip.extents.x1 - dst_x,
++ src_y + clip.extents.y1 - dst_y,
+ 0, 0,
+ clip.extents.x1, clip.extents.y1,
+ clip.extents.x2 - clip.extents.x1,
+ clip.extents.y2 - clip.extents.y1,
+- COMPOSITE_PARTIAL, memset(&tmp, 0, sizeof(tmp)))) {
++ (clip.data || num_boxes > 1) ? COMPOSITE_PARTIAL : 0,
++ memset(&tmp, 0, sizeof(tmp)))) {
+ unsigned int flags;
+ const pixman_box16_t *b;
+ int i, count;
+@@ -232,6 +246,8 @@ composite_aligned_boxes(struct sna *sna,
+ }
+
+ DBG(("%s: fbComposite()\n", __FUNCTION__));
++ src_x -= dst_x - dx;
++ src_y -= dst_y - dy;
+ if (maskFormat) {
+ pixman_region_init_rects(®ion, boxes, num_boxes);
+ RegionIntersect(®ion, ®ion, &clip);
+@@ -241,8 +257,8 @@ composite_aligned_boxes(struct sna *sna,
+ count = region_num_rects(®ion);
+ for (i = 0; i < count; i++) {
+ fbComposite(op, src, NULL, dst,
+- src_x + b[i].x1 - boxes[0].x1,
+- src_y + b[i].y1 - boxes[0].y1,
++ src_x + b[i].x1,
++ src_y + b[i].y1,
+ 0, 0,
+ b[i].x1, b[i].y1,
+ b[i].x2 - b[i].x1, b[i].y2 - b[i].y1);
+@@ -259,8 +275,8 @@ composite_aligned_boxes(struct sna *sna,
+ if (sigtrap_get() == 0) {
+ for (i = 0; i < count; i++) {
+ fbComposite(op, src, NULL, dst,
+- src_x + b[i].x1 - boxes[0].x1,
+- src_y + b[i].y1 - boxes[0].y1,
++ src_x + b[i].x1,
++ src_y + b[i].y1,
+ 0, 0,
+ b[i].x1, b[i].y1,
+ b[i].x2 - b[i].x1, b[i].y2 - b[i].y1);
+--
+cgit v0.10.2
+
diff --git a/debian/patches/series b/debian/patches/series
index 1aa20d9..3e2e7a5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,5 @@
dri3-flush-broken.patch
+fix-sna-trapezoids.patch
# XMir series
Reply to: