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

Author: Brian Paul <bri...@vmware.com>
Date:   Thu Sep 15 12:07:18 2016 -0600

svga: skip query flush if we already have the query result

This reduces the number of times we flush in some situations (the
arbocclude demo is one trivial example).

Tested with Piglit, ETQW, Sauerbraten, arbocclude.

Reviewed-by: Charmaine Lee <charmai...@vmware.com>

---

 src/gallium/drivers/svga/svga_pipe_query.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_pipe_query.c 
b/src/gallium/drivers/svga/svga_pipe_query.c
index 74a7f5f..5de3937 100644
--- a/src/gallium/drivers/svga/svga_pipe_query.c
+++ b/src/gallium/drivers/svga/svga_pipe_query.c
@@ -638,11 +638,11 @@ get_query_result_vgpu10(struct svga_context *svga, struct 
svga_query *sq,
 
    sws->query_get_result(sws, sq->gb_query, sq->offset, &queryState, result, 
resultLen);
 
-   if (!sq->fence) {
-      /* The query hasn't been submitted yet.  We need to submit it now
-       * since the GL spec says "Querying the state for a given occlusion
-       * query forces that occlusion query to complete within a finite amount
-       * of time."
+   if (queryState != SVGA3D_QUERYSTATE_SUCCEEDED && !sq->fence) {
+      /* We don't have the query result yet, and the query hasn't been
+       * submitted.  We need to submit it now since the GL spec says
+       * "Querying the state for a given occlusion query forces that
+       * occlusion query to complete within a finite amount of time."
        */
       svga_context_flush(svga, &sq->fence);
    }

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to