anv: compiler much slower than radv
One of ChromeOS's big concerns for Steam is that Intel's fossilize step is much slower than on other comparable-CPU boards. To compare using some stuff I had on hand, on my workstation with release builds, using shader-db and https://gitlab.freedesktop.org/anholt/shaders/-/tree/fossils together, with fozzilize-replay hacked to ignore renderpass compatibility (so we don't skip my angle/gfxbench fossils on radv), and intel drm-shim in place or not:
# time INTEL_STUB_GPU_PLATFORM=tgl MESA_SHADER_CACHE_DISABLE=1 mesagl irisgl releasegl fossilize-replay --enable-pipeline-stats anv.log fossils/**/*.foz fossils/closed/**/*.foz
Fossilize INFO: name: Intel(R) Xe Graphics (TGL GT2)
[...]
110.82s user 3.45s system 2862% cpu 3.991 total
time MESA_SHADER_CACHE_DISABLE=1 fossilize-replay --enable-pipeline-stats radv.log fossils/**/*.foz fossils/closed/**/*.foz
Fossilize INFO: name: AMD Radeon RX Vega (RADV VEGA10)
[...]
33.85s user 2.25s system 2363% cpu 1.528 total
radv completes in 38% of the wall time / 30% of the CPU time of anv.
I can share this closed shader-db with intel devs that might be looking into it.
intel debugoptimized perf report -g with NIR validation disabled
+ 92.08% 0.00% fossilize-repla fossilize-replay [.] ThreadedReplayer::worker_thread ▒
+ 91.41% 0.00% fossilize-repla fossilize-replay [.] ThreadedReplayer::run_creation_work_item ▒
+ 81.51% 0.00% fossilize-repla fossilize-replay [.] ThreadedReplayer::run_creation_work_item_graphics_iteration ▒
+ 81.47% 0.01% fossilize-repla libvulkan_intel.so [.] anv_graphics_pipeline_create ▒
+ 81.37% 0.01% fossilize-repla libvulkan_intel.so [.] anv_graphics_pipeline_compile.constprop.0 ▒
+ 81.32% 0.00% fossilize-repla libvulkan_intel.so [.] anv_CreateGraphicsPipelines ▒
+ 47.45% 0.01% fossilize-repla libvulkan_intel.so [.] brw_compile_fs ▒
+ 44.17% 0.01% fossilize-repla libvulkan_intel.so [.] fs_visitor::optimize ▒
+ 43.21% 0.00% fossilize-repla libvulkan_intel.so [.] fs_visitor::run_fs ▒
+ 18.26% 0.01% fossilize-repla libvulkan_intel.so [.] fs_visitor::allocate_registers ▒
+ 15.59% 0.06% fossilize-repla libvulkan_intel.so [.] brw_nir_optimize ▒
+ 14.53% 0.00% fossilize-repla libvulkan_intel.so [.] brw_compile_vs ▒
+ 11.98% 10.11% fossilize-repla libvulkan_intel.so [.] fs_inst::size_read ▒
+ 11.38% 0.00% fossilize-repla libvulkan_intel.so [.] fs_visitor::run_vs ▒
+ 10.61% 0.00% fossilize-repla libvulkan_intel.so [.] anv_pipeline_nir_preprocess.isra.0 ▒
+ 10.51% 0.44% fossilize-repla libvulkan_intel.so [.] brw::fs_live_variables::fs_live_variables ▒
+ 10.45% 0.01% fossilize-repla libvulkan_intel.so [.] brw_preprocess_nir ▒
+ 10.41% 0.00% fossilize-repla libvulkan_intel.so [.] anv_pipeline_compile_cs ▒
+ 9.88% 0.00% fossilize-repla fossilize-replay [.] ThreadedReplayer::run_creation_work_item_compute_iteration ▒
+ 9.87% 0.00% fossilize-repla libvulkan_intel.so [.] anv_CreateComputePipelines ▒
+ 9.50% 0.00% fossilize-repla libvulkan_intel.so [.] brw_compile_cs ▒
+ 9.26% 3.64% fossilize-repla libvulkan_intel.so [.] brw::fs_live_variables::setup_def_use ▒
+ 8.90% 0.00% fossilize-repla libvulkan_intel.so [.] fs_visitor::run_cs ▒
+ 8.80% 0.29% fossilize-repla libvulkan_intel.so [.] fs_visitor::opt_copy_propagation ▒
+ 8.48% 3.19% fossilize-repla libvulkan_intel.so [.] fs_visitor::validate ▒
+ 7.80% 0.00% fossilize-repla libvulkan_intel.so [.] fs_visitor::assign_regs ▒
+ 7.69% 0.00% fossilize-repla libvulkan_intel.so [.] fs_visitor::schedule_instructions ▒
+ 7.58% 0.01% fossilize-repla libvulkan_intel.so [.] instruction_scheduler::run ▒
+ 7.46% 5.79% fossilize-repla libvulkan_intel.so [.] fs_visitor::register_coalesce ▒
+ 6.95% 0.03% fossilize-repla libvulkan_intel.so [.] fs_reg_alloc::assign_regs ▒
+ 6.82% 1.21% fossilize-repla libvulkan_intel.so [.] fs_visitor::dead_code_eliminate ▒
+ 6.48% 0.00% fossilize-repla libvulkan_intel.so [.] fs_visitor::opt_cse ▒
+ 6.44% 5.44% fossilize-repla libvulkan_intel.so [.] fs_visitor::opt_copy_propagation_local ▒
+ 5.19% 0.01% fossilize-repla libvulkan_intel.so [.] brw_postprocess_nir ▒
+ 4.80% 0.59% fossilize-repla libvulkan_intel.so [.] nir_algebraic_impl ▒
+ 4.77% 2.11% fossilize-repla libvulkan_intel.so [.] regs_read ▒
+ 4.59% 0.01% fossilize-repla libvulkan_intel.so [.] nir_opt_algebraic ▒