From: Marek Olšák <[email protected]>

---
 src/gallium/drivers/radeon/r600_query.c | 3 ++-
 src/gallium/drivers/radeon/r600_query.h | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeon/r600_query.c 
b/src/gallium/drivers/radeon/r600_query.c
index 2e06746..d83d505 100644
--- a/src/gallium/drivers/radeon/r600_query.c
+++ b/src/gallium/drivers/radeon/r600_query.c
@@ -763,7 +763,8 @@ boolean r600_query_hw_begin(struct r600_common_context 
*rctx,
                return false;
        }
 
-       r600_query_hw_reset_buffers(rctx, query);
+       if (!(query->flags & R600_QUERY_HW_FLAG_BEGIN_RESUMES))
+               r600_query_hw_reset_buffers(rctx, query);
 
        r600_query_hw_emit_start(rctx, query);
        if (!query->buffer.buf)
diff --git a/src/gallium/drivers/radeon/r600_query.h 
b/src/gallium/drivers/radeon/r600_query.h
index b573a17..7689bf9 100644
--- a/src/gallium/drivers/radeon/r600_query.h
+++ b/src/gallium/drivers/radeon/r600_query.h
@@ -92,6 +92,8 @@ struct r600_query {
 enum {
        R600_QUERY_HW_FLAG_NO_START = (1 << 0),
        R600_QUERY_HW_FLAG_PREDICATE = (1 << 1),
+       /* whether begin_query doesn't clear the result */
+       R600_QUERY_HW_FLAG_BEGIN_RESUMES = (1 << 2),
 };
 
 struct r600_query_hw_ops {
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to