Mesa (master): r300g/swtcl: flush draw to avoid the rejection of CS

Marek Olšák mareko at kemper.freedesktop.org
Sun May 16 02:11:25 UTC 2010


Module: Mesa
Branch: master
Commit: 412cdcd479df13c27242090d6e0727389eb2a0da
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=412cdcd479df13c27242090d6e0727389eb2a0da

Author: Marek Olšák <maraeo at gmail.com>
Date:   Sun May 16 04:09:07 2010 +0200

r300g/swtcl: flush draw to avoid the rejection of CS

---

 src/gallium/drivers/r300/r300_render.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c
index 667f813..16d0d94 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -749,6 +749,10 @@ void r300_swtcl_draw_arrays(struct pipe_context* pipe,
 
     draw_arrays(r300->draw, mode, start, count);
 
+    /* XXX Not sure whether this is the best fix.
+     * It prevents CS from being rejected and weird assertion failures. */
+    draw_flush(r300->draw);
+
     for (i = 0; i < r300->vertex_buffer_count; i++) {
         pipe_buffer_unmap(pipe, r300->vertex_buffer[i].buffer,
 			  vb_transfer[i]);
@@ -798,6 +802,10 @@ void r300_swtcl_draw_range_elements(struct pipe_context* pipe,
 
     draw_arrays(r300->draw, mode, start, count);
 
+    /* XXX Not sure whether this is the best fix.
+     * It prevents CS from being rejected and weird assertion failures. */
+    draw_flush(r300->draw);
+
     for (i = 0; i < r300->vertex_buffer_count; i++) {
         pipe_buffer_unmap(pipe, r300->vertex_buffer[i].buffer,
 			  vb_transfer[i]);




More information about the mesa-commit mailing list