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>
This commit is contained in:
Chris Wilson 2015-06-12 10:33:17 +01:00
parent dcb4d323ca
commit a00d9999f4
1 changed files with 2 additions and 2 deletions

View File

@ -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;