it's stupid to do optimized background compiles if the driver is going
to create the exact same pipeline, so add a workaround to disable
this behavior
should improve ci runtimes on lavapipe by some amount
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22613>
void
zink_gfx_program_compile_queue(struct zink_context *ctx, struct zink_gfx_pipeline_cache_entry *pc_entry)
{
- util_queue_add_job(&zink_screen(ctx->base.screen)->cache_get_thread, pc_entry, &pc_entry->fence, optimized_compile_job, NULL, 0);
+ 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, optimized_compile_job, NULL, 0);
}
static void
default:
break;
}
+
+ /* these drivers have no difference between unoptimized and optimized shader compilation */
+ switch (screen->info.driver_props.driverID) {
+ case VK_DRIVER_ID_MESA_LLVMPIPE:
+ screen->driver_workarounds.disable_optimized_compile = true;
+ break;
+ default:
+ break;
+ }
}
static struct disk_cache *
*/
bool broken_cache_semantics;
bool implicit_sync;
+ bool disable_optimized_compile;
bool always_feedback_loop;
bool always_feedback_loop_zs;
bool needs_sanitised_layer;