From b8dcbfbd390af04cb5271be3c8e9fa9c51380e9b Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Thu, 11 Jul 2024 14:20:10 -0400 Subject: [PATCH] zink: print pipeline stats for compute shader-db this is useful for evaluating compute shaders with zink. the open shader-db doesn't have any compute shaders in it, but shader-db runner is capable of compute and we need to handle it. (Rob's shaderdb definitely has some compute shaders in it, at least.) this gets us pipeline stats printing on zink+nvk for a simple compute shader I wrote when working on common NIR stuff: b.shader_test - type: compute, Code Size: 752, Number of GPRs: 19, SLM Size: 0 Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/zink/zink_program.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 180841724d3..e8d7c6615a2 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -1532,11 +1532,17 @@ create_compute_program(struct zink_context *ctx, nir_shader *nir) _mesa_hash_table_init(&comp->pipelines, comp, NULL, comp->use_local_size ? equals_compute_pipeline_state_local_size : equals_compute_pipeline_state); - if (zink_debug & ZINK_DEBUG_NOBGC) + + if (zink_debug & (ZINK_DEBUG_NOBGC|ZINK_DEBUG_SHADERDB)) precompile_compute_job(comp, screen, 0); else util_queue_add_job(&screen->cache_get_thread, comp, &comp->base.cache_fence, precompile_compute_job, NULL, 0); + + if (zink_debug & ZINK_DEBUG_SHADERDB) { + print_pipeline_stats(screen, comp->base_pipeline, &ctx->dbg); + } + return comp; }