summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/state_tracker/st_cb_queryobj.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mesa/state_tracker/st_cb_queryobj.c b/src/mesa/state_tracker/st_cb_queryobj.c
index 71222e80b6b..aafae16b2df 100644
--- a/src/mesa/state_tracker/st_cb_queryobj.c
+++ b/src/mesa/state_tracker/st_cb_queryobj.c
@@ -289,9 +289,18 @@ st_CheckQuery(struct gl_context *ctx, struct gl_query_object *q)
static uint64_t
st_GetTimestamp(struct gl_context *ctx)
{
- struct pipe_screen *screen = st_context(ctx)->pipe->screen;
+ struct pipe_context *pipe = st_context(ctx)->pipe;
+ struct pipe_screen *screen = pipe->screen;
- return screen->get_timestamp(screen);
+ /* Prefer the per-screen function */
+ if (screen->get_timestamp) {
+ return screen->get_timestamp(screen);
+ }
+ else {
+ /* Fall back to the per-context function */
+ assert(pipe->get_timestamp);
+ return pipe->get_timestamp(pipe);
+ }
}