From e4c4fca16e92b3da4fc8ee4e40d06df5f085a804 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 20 Apr 2023 13:21:28 -0400 Subject: [PATCH] zink: don't pin flush queue threads if no threads exist Fixes: 270f9c0b063 ("zink: add ZINK_DEBUG=flushsync") Part-of: --- src/gallium/drivers/zink/zink_context.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index df659060142..6f6b7f7db7a 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -272,12 +272,14 @@ zink_set_context_param(struct pipe_context *pctx, enum pipe_context_param param, unsigned value) { struct zink_context *ctx = zink_context(pctx); + struct zink_screen *screen = zink_screen(ctx->base.screen); switch (param) { case PIPE_CONTEXT_PARAM_PIN_THREADS_TO_L3_CACHE: - util_set_thread_affinity(zink_screen(ctx->base.screen)->flush_queue.threads[0], - util_get_cpu_caps()->L3_affinity_mask[value], - NULL, util_get_cpu_caps()->num_cpu_mask_bits); + if (screen->threaded_submit) + util_set_thread_affinity(screen->flush_queue.threads[0], + util_get_cpu_caps()->L3_affinity_mask[value], + NULL, util_get_cpu_caps()->num_cpu_mask_bits); break; default: break;