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 <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Tapani Pälli 2017-11-20 08:31:40 +02:00
parent 49e2586bfc
commit 80d96ca4c8
2 changed files with 9 additions and 0 deletions

View File

@ -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;
};

View File

@ -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;
}