xf86-video-intel: src/sna/gen4_render.c src/sna/gen5_render.c src/sna/gen6_render.c src/sna/gen7_render.c
Chris Wilson
ickle at kemper.freedesktop.org
Thu Aug 25 11:56:56 PDT 2011
src/sna/gen4_render.c | 2 ++
src/sna/gen5_render.c | 2 ++
src/sna/gen6_render.c | 3 +++
src/sna/gen7_render.c | 2 ++
4 files changed, 9 insertions(+)
New commits:
commit 786a770f528a0daee2971494352672cb89f48384
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Aug 25 19:52:13 2011 +0100
sna/video: Flush the video state at the end of the operation
Or in the case where a second command is received prior to the batch
being flushed, the vertex data is not flushed and leads to the a
miscompution of the number of vertices emitted.
Reported-by: Elias Probst <mail at eliasprobst.eu>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40332
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 7555533..bddc681 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -1701,6 +1701,8 @@ gen4_render_video(struct sna *sna,
box++;
}
+ gen4_vertex_flush(sna);
+ _kgem_set_mode(&sna->kgem, KGEM_RENDER);
return TRUE;
}
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index b282666..c7668b9 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -1711,6 +1711,8 @@ gen5_render_video(struct sna *sna,
box++;
}
+ gen5_vertex_flush(sna);
+ _kgem_set_mode(&sna->kgem, KGEM_RENDER);
return TRUE;
}
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index 7b22ea2..5641b3c 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -1596,6 +1596,7 @@ static void gen6_emit_composite_state(struct sna *sna,
static void
gen6_align_vertex(struct sna *sna, const struct sna_composite_op *op)
{
+ assert (sna->render_state.gen6.vertex_offset == 0);
if (op->floats_per_vertex != sna->render_state.gen6.floats_per_vertex) {
DBG(("aligning vertex: was %d, now %d floats per vertex, %d->%d\n",
sna->render_state.gen6.floats_per_vertex,
@@ -1900,6 +1901,8 @@ gen6_render_video(struct sna *sna,
box++;
}
+ gen6_vertex_flush(sna);
+ _kgem_set_mode(&sna->kgem, KGEM_RENDER);
return TRUE;
}
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 502590e..379ff56 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -2033,6 +2033,8 @@ gen7_render_video(struct sna *sna,
box++;
}
+ gen7_vertex_flush(sna);
+ _kgem_set_mode(&sna->kgem, KGEM_RENDER);
return TRUE;
}
More information about the xorg-commit
mailing list