Module: Mesa Branch: main Commit: 5663fac5ca84d9e87e49dadf8d7feb401ebf73f2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5663fac5ca84d9e87e49dadf8d7feb401ebf73f2
Author: Mike Blumenkrantz <[email protected]> Date: Mon May 10 09:59:00 2021 -0400 zink: break out spirv shader dumping into separate function debugging++ Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14976> --- src/gallium/drivers/zink/zink_compiler.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index b16f55674f1..82169148d6d 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -1009,6 +1009,17 @@ zink_compiler_assign_io(nir_shader *producer, nir_shader *consumer) optimize_nir(nir); } +static void +zink_shader_dump(void *words, size_t size, const char *file) +{ + FILE *fp = fopen(file, "wb"); + if (fp) { + fwrite(words, 1, size, fp); + fclose(fp); + fprintf(stderr, "wrote '%s'...\n", file); + } +} + VkShaderModule zink_shader_compile(struct zink_screen *screen, struct zink_shader *zs, nir_shader *base_nir, const struct zink_shader_key *key) { @@ -1129,12 +1140,7 @@ zink_shader_compile(struct zink_screen *screen, struct zink_shader *zs, nir_shad char buf[256]; static int i; snprintf(buf, sizeof(buf), "dump%02d.spv", i++); - FILE *fp = fopen(buf, "wb"); - if (fp) { - fwrite(spirv->words, sizeof(uint32_t), spirv->num_words, fp); - fclose(fp); - fprintf(stderr, "wrote '%s'...\n", buf); - } + zink_shader_dump(spirv->words, spirv->num_words * sizeof(uint32_t), buf); } VkShaderModuleCreateInfo smci = {0};
