This state will be used by EXT_disjoint_timer_query. As first
usage, patch sets DisjointOperation true when gpu reset happens.

Signed-off-by: Tapani Pälli <tapani.pa...@intel.com>
---
 src/mesa/main/mtypes.h     | 8 ++++++++
 src/mesa/main/robustness.c | 1 +
 2 files changed, 9 insertions(+)

diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 4682e02fc8..4cb6a74d69 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3293,6 +3293,14 @@ struct gl_shared_state
    /** EXT_external_objects */
    struct _mesa_HashTable *MemoryObjects;
 
+   /**
+    * Some context in this share group was affected by a disjoint
+    * operation. This operation can be anything that has effects on
+    * values of timer queries in such manner that they become invalid for
+    * performance metrics. As example gpu reset, counter overflow or gpu
+    * frequency changes.
+    */
+   bool DisjointOperation;
 };
 
 
diff --git a/src/mesa/main/robustness.c b/src/mesa/main/robustness.c
index a61c07f125..e7d7007da4 100644
--- a/src/mesa/main/robustness.c
+++ b/src/mesa/main/robustness.c
@@ -145,6 +145,7 @@ _mesa_GetGraphicsResetStatusARB( void )
        */
       if (status != GL_NO_ERROR) {
          ctx->Shared->ShareGroupReset = true;
+         ctx->Shared->DisjointOperation = true;
       } else if (ctx->Shared->ShareGroupReset && !ctx->ShareGroupReset) {
          status = GL_INNOCENT_CONTEXT_RESET_ARB;
       }
-- 
2.14.3

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

Reply via email to