summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-01-27 21:07:03 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-01-27 21:07:03 +0000
commitb0d26ca9312695d05c29503a3f892e7f2c5816dd (patch)
tree580f60c63ddce7d5a790cb4df19073431406e8cb /src
parentb0c3170c1092d01b4937f352a3962854785ee549 (diff)
sna: Replace the forced vertex finish with just a wait
When completing a batch mid-operation, we need to wait upon the other threads to complete their writes so that memory is coherent before submitting the work to the GPU. This was achieved by forcing the finish, but all that from that is the wait, which makes the handling of threads much explicit and removes the unnecessary vbo refresh. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/sna/gen3_render.c2
-rw-r--r--src/sna/gen4_render.c2
-rw-r--r--src/sna/gen5_render.c2
-rw-r--r--src/sna/gen6_render.c2
-rw-r--r--src/sna/gen7_render.c2
5 files changed, 5 insertions, 5 deletions
diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index 6c0ea6a6..3eb29668 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -2008,7 +2008,7 @@ flush:
gen3_vertex_flush(sna);
gen3_magic_ca_pass(sna, op);
}
- gen3_vertex_finish(sna);
+ sna_vertex_wait__locked(&sna->render);
_kgem_submit(&sna->kgem);
gen3_emit_composite_state(sna, op);
assert(sna->render.vertex_offset == 0);
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index e4f5f594..249d6261 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -667,7 +667,7 @@ flush:
gen4_vertex_flush(sna);
gen4_magic_ca_pass(sna, op);
}
- gen4_vertex_finish(sna);
+ sna_vertex_wait__locked(&sna->render);
_kgem_submit(&sna->kgem);
emit_state(sna, op);
goto start;
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index 998d55e2..e4649c4b 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -654,7 +654,7 @@ flush:
gen4_vertex_flush(sna);
gen5_magic_ca_pass(sna, op);
}
- gen4_vertex_finish(sna);
+ sna_vertex_wait__locked(&sna->render);
_kgem_submit(&sna->kgem);
emit_state(sna, op);
goto start;
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index 4a9387a6..bb35e10f 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -1204,7 +1204,7 @@ flush:
gen4_vertex_flush(sna);
gen6_magic_ca_pass(sna, op);
}
- gen4_vertex_finish(sna);
+ sna_vertex_wait__locked(&sna->render);
_kgem_submit(&sna->kgem);
emit_state(sna, op);
goto start;
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 6eec4b45..a3ec26e4 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1329,7 +1329,7 @@ flush:
gen4_vertex_flush(sna);
gen7_magic_ca_pass(sna, op);
}
- gen4_vertex_finish(sna);
+ sna_vertex_wait__locked(&sna->render);
_kgem_submit(&sna->kgem);
emit_state(sna, op);
goto start;