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