mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-24 12:48:13 +02:00
Instead, we only recompute liveness and we add new nodes and interferences to the graph manually (we also need to patch register classes in some cases). To assist in this process, we also add an ip counter to our instructions that we also recompute after each spill, which we use to identify registers that cross thrsw boundries introduced with TMU spills and fills and adjust their register classes accordingly (removing their capacity to use accumulators). This significantly reduces the CPU cost of spills. Using shaders/closed/gputest/piano/7.shader_test as reference: Compile time up to the first successful compile strategy in main is ~24s and with this change it is ~11s. With this speed up, we can now try all 2-thread compile strategies (including the fallback scheduler) in only ~15s. A full shader-db run results in: Total CPU time (seconds): 9904.67 -> 9087.98 (-8.25%) Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15041> |
||
|---|---|---|
| .. | ||
| amd | ||
| android_stub | ||
| asahi | ||
| broadcom | ||
| compiler | ||
| drm-shim | ||
| egl | ||
| etnaviv | ||
| freedreno | ||
| gallium | ||
| gbm | ||
| getopt | ||
| glx | ||
| gtest | ||
| hgl | ||
| imgui | ||
| intel | ||
| loader | ||
| mapi | ||
| mesa | ||
| microsoft | ||
| nouveau | ||
| panfrost | ||
| tool | ||
| util | ||
| virtio | ||
| vulkan | ||
| meson.build | ||