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 <sarv...@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 <mar...@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 <tjaal...@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 <ch...@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" <jstpie...@mecheye.net> +Signed-off-by: Chris Wilson <ch...@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 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1yxymh-0002ns...@moszumanska.debian.org