diff --git a/src/gallium/frontends/nine/nine_state.c b/src/gallium/frontends/nine/nine_state.c index d6a13622146..6f57b19e1aa 100644 --- a/src/gallium/frontends/nine/nine_state.c +++ b/src/gallium/frontends/nine/nine_state.c @@ -317,6 +317,17 @@ nine_context_get_pipe_release( struct NineDevice9 *device ) nine_csmt_resume(device); } +bool +nine_context_is_worker( struct NineDevice9 *device ) +{ + struct csmt_context *ctx = device->csmt_ctx; + + if (!device->csmt_active) + return false; + + return u_thread_is_self(ctx->worker); +} + /* Nine state functions */ /* Check if some states need to be set dirty */ diff --git a/src/gallium/frontends/nine/nine_state.h b/src/gallium/frontends/nine/nine_state.h index d0cf121867b..ab732c9ced9 100644 --- a/src/gallium/frontends/nine/nine_state.h +++ b/src/gallium/frontends/nine/nine_state.h @@ -672,4 +672,7 @@ nine_context_get_pipe_acquire( struct NineDevice9 *device ); void nine_context_get_pipe_release( struct NineDevice9 *device ); +bool +nine_context_is_worker( struct NineDevice9 *device ); + #endif /* _NINE_STATE_H_ */