summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2015-06-12 10:33:17 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2015-06-12 12:09:58 +0100
commita00d9999f410b3ad5bb05ed68b7dd4e7166fd868 (patch)
tree5819da7d412f905f1b6c44d6046ea02777344897 /src
parentdcb4d323ca19f86fbe0230378ac9035161a70f9e (diff)
sna: Fix tiling trapezoids
When the trapezoid is rendering to a surface larger than the 3D pipe can handle, we split it into tiles. However, the code to do so insisted on passing along the wrong pointer and consequently crashed. Based on the patch by Carl Michal. Reported-by: Carl Michal <michal@physics.ubc.ca> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90940 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/sna/sna_tiling.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/sna/sna_tiling.c b/src/sna/sna_tiling.c
index 308efc0a..8e2627f7 100644
--- a/src/sna/sna_tiling.c
+++ b/src/sna/sna_tiling.c
@@ -369,8 +369,7 @@ sna_tiling_composite_spans_boxes(struct sna *sna,
const BoxRec *box, int nbox, float opacity)
{
while (nbox--)
- sna_tiling_composite_spans_box(sna, op->base.priv, box++, opacity);
- (void)sna;
+ sna_tiling_composite_spans_box(sna, op, box++, opacity);
}
fastcall static void
@@ -581,6 +580,7 @@ sna_tiling_composite_spans(uint32_t op,
tile->rects = tile->rects_embedded;
tile->rect_count = 0;
tile->rect_size = ARRAY_SIZE(tile->rects_embedded);
+ COMPILE_TIME_ASSERT(sizeof(tile->rects_embedded[0]) >= sizeof(struct sna_tile_span));
tmp->box = sna_tiling_composite_spans_box;
tmp->boxes = sna_tiling_composite_spans_boxes;