struct zink_screen *screen = zink_screen(ctx->base.screen);
if (screen->driver_workarounds.disable_optimized_compile)
return;
- util_queue_add_job(&screen->cache_get_thread, pc_entry, &pc_entry->fence,
- pc_entry->prog->base.uses_shobj ? optimized_shobj_compile_job : optimized_compile_job, NULL, 0);
+ if (zink_debug & ZINK_DEBUG_NOBGC) {
+ if (pc_entry->prog->base.uses_shobj)
+ optimized_shobj_compile_job(pc_entry, screen, 0);
+ else
+ optimized_compile_job(pc_entry, screen, 0);
+ } else {
+ util_queue_add_job(&screen->cache_get_thread, pc_entry, &pc_entry->fence,
+ pc_entry->prog->base.uses_shobj ? optimized_shobj_compile_job : optimized_compile_job, NULL, 0);
+ }
}
static void
} else {
if (zink_screen(pctx->screen)->info.have_EXT_shader_object)
prog->base.uses_shobj = !BITSET_TEST(zshaders[MESA_SHADER_FRAGMENT]->info.system_values_read, SYSTEM_VALUE_SAMPLE_MASK_IN);
- util_queue_add_job(&zink_screen(pctx->screen)->cache_get_thread, prog, &prog->base.cache_fence, precompile_job, NULL, 0);
+ if (zink_debug & ZINK_DEBUG_NOBGC)
+ precompile_job(prog, pctx->screen, 0);
+ else
+ util_queue_add_job(&zink_screen(pctx->screen)->cache_get_thread, prog, &prog->base.cache_fence, precompile_job, NULL, 0);
}
}
(screen->info.have_EXT_graphics_pipeline_library && (nir->info.stage == MESA_SHADER_FRAGMENT || nir->info.stage == MESA_SHADER_VERTEX)))) {
struct zink_shader *zs = ret;
/* sample shading can't precompile */
- if (nir->info.stage != MESA_SHADER_FRAGMENT || !nir->info.fs.uses_sample_shading)
- util_queue_add_job(&screen->cache_get_thread, zs, &zs->precompile.fence, precompile_separate_shader_job, NULL, 0);
+ if (nir->info.stage != MESA_SHADER_FRAGMENT || !nir->info.fs.uses_sample_shading) {
+ if (zink_debug & ZINK_DEBUG_NOBGC)
+ precompile_separate_shader_job(zs, screen, 0);
+ else
+ util_queue_add_job(&screen->cache_get_thread, zs, &zs->precompile.fence, precompile_separate_shader_job, NULL, 0);
+ }
}
ralloc_free(nir);
{ "noshobj", ZINK_DEBUG_NOSHOBJ, "Disable EXT_shader_object" },
{ "optimal_keys", ZINK_DEBUG_OPTIMAL_KEYS, "Debug/use optimal_keys" },
{ "noopt", ZINK_DEBUG_NOOPT, "Disable async optimized pipeline compiles" },
+ { "nobgc", ZINK_DEBUG_NOBGC, "Disable all async pipeline compiles" },
DEBUG_NAMED_VALUE_END
};