st/mesa: use asynchronous flushes in st_finish
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 9 Nov 2017 13:34:20 +0000 (14:34 +0100)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Mon, 20 Nov 2017 17:15:07 +0000 (18:15 +0100)
With threaded gallium, the driver may currently be running in another
thread. In that case, we will execute all remaining commands in that
thread instead of syncing, which should be better for cache locality.

Reviewed-by: Andres Rodriguez <andresx7@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_cb_flush.c

index c8452d0e6f7220750f8fd64de29d6048469bdfca..14bfd5a4684f38594483195801766a7b7f6bd9d3 100644 (file)
@@ -63,7 +63,7 @@ void st_finish( struct st_context *st )
 {
    struct pipe_fence_handle *fence = NULL;
 
-   st_flush(st, &fence, 0);
+   st_flush(st, &fence, PIPE_FLUSH_ASYNC | PIPE_FLUSH_HINT_FINISH);
 
    if(fence) {
       st->pipe->screen->fence_finish(st->pipe->screen, NULL, fence,