mesa/src
Rhys Perry e36e295393 spirv: run nir_copy_prop before nir_rematerialize_derefs_in_use_blocks_impl
spirv_to_nir sometimes wraps derefs in vec2 or mov instructions as part of
its texture handling. These get in the way of
nir_rematerialize_derefs_in_use_blocks_impl. Running copy propagation
should get rid of the extra move instructions and get us back to intact
deref chains for everything except variable pointer use-cases.

fossil-db (Sienna Cichlid):
Totals from 6 (0.00% of 134572) affected shaders:
CodeSize: 92656 -> 93088 (+0.47%)
Instrs: 17060 -> 17138 (+0.46%)
Latency: 224408 -> 227539 (+1.40%)
InvThroughput: 37402 -> 37924 (+1.40%)
VClause: 408 -> 402 (-1.47%)
Copies: 1065 -> 1107 (+3.94%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5668
Fixes: 14a12b771d ("spirv: Rework our handling of images and samplers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13924>
(cherry picked from commit b425100781)
2021-11-24 15:47:19 -08:00
..
amd aco/spill: use spills_entry instead of spills_exit to kill linear VGPRs 2021-11-24 15:47:19 -08:00
android_stub egl/android: refactor to use the legit vndk/window.h header 2021-06-09 21:07:54 +00:00
asahi agx: Plug memory leak in register allocator 2021-07-26 12:16:50 -07:00
broadcom v3d: add R10G10B10X2_UNORM to format table 2021-09-28 12:31:55 -07:00
compiler spirv: run nir_copy_prop before nir_rematerialize_derefs_in_use_blocks_impl 2021-11-24 15:47:19 -08:00
drm-shim drm-shim: Support kernels with >4k pages 2021-08-16 11:40:28 -07:00
egl egl: set TSD as NULL after deinit 2021-10-15 09:05:22 -07:00
etnaviv android: Drop the Android.mk build system 2021-07-08 14:44:02 -05:00
freedreno ir3/lower_pcopy: Fix bug with "illegal" copies and swaps 2021-11-24 15:47:19 -08:00
gallium svga: fix bitwise/logical and mixup 2021-11-24 15:47:19 -08:00
gbm gbm/dri: Fix leaking bo memory on failure path 2021-07-13 11:15:44 +00:00
getopt scons: Remove. 2021-03-20 10:38:55 +00:00
glx glx: Prevent crashes when an extension isn't found 2021-09-08 11:27:45 -07:00
gtest
hgl
imgui
intel intel/fs: fix shader call lowering pass 2021-11-24 15:47:19 -08:00
loader loader/dri3: fix swap out of order when changing swap interval 2021-10-01 08:57:31 -07:00
mapi glthread: use custom marshal/unmarshal for CallList 2021-07-09 10:05:46 +00:00
mesa mesa: fix buffer overrun in SavedObj texture obj array 2021-11-24 15:47:19 -08:00
microsoft nir: Drop nir_ssa_def::name and nir_register::name 2021-07-08 17:34:41 +00:00
nouveau
panfrost panfrost: Add internal afbc_formats 2021-10-27 14:53:01 -07:00
tool pps: Panfrost pps driver 2021-07-13 11:03:55 +00:00
util driconf: disallow 10-bit pbuffers for viewperf2020/maya due to X errors 2021-11-24 15:47:19 -08:00
virtio venus: free queues after vkDestroyDevice is emitted 2021-08-09 14:46:36 -07:00
vulkan vulkan: Fix entrypoint generation when compiling for x86 with MSVC 2021-10-27 14:53:00 -07:00
meson.build panfrost: Add a Vulkan driver for Midgard/Bifrost GPUs 2021-06-22 14:07:34 +00:00