summaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
authorTapani Pälli <[email protected]>2017-11-20 08:31:40 +0200
committerTapani Pälli <[email protected]>2017-12-15 08:42:48 +0200
commit80d96ca4c862dcf275b93e603916193094c59d6e (patch)
treef928ec05797449d5fd837b2bce2765f59eb61849 /src/mesa/main
parent49e2586bfc7f806038bba7864dcff0c50fed1fe9 (diff)
mesa: add DisjointOperation to gl_shared_state
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 <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/mtypes.h8
-rw-r--r--src/mesa/main/robustness.c1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index b372921e9f0..0aac49402e8 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3310,6 +3310,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 a61c07f125f..e7d7007da48 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;
}