mesa/src/compiler
Rhys Perry ee073cb543 nir/load_store_vectorize: improve vectorization with identical operations
We might have several identical options to vectorize an entry with, but
only one might be vectorizable because of writes interfering.

An example of this is a pattern found in some CTS tests:
a = load(0)
b = load(4)
store(0, a)
store(4, b)
a = load(0)
b = load(4)
store(0, a)
store(4, b)
...

It might have attempted to vectorize the first load(0) with the second
load(4) without attempting the second load(4) when the first fails. This
changes vectorize_entries() to continue even if the first try_vectorize()
failed.

fossil-db (Navi):
Totals from 117 (0.09% of 137413) affected shaders:
SGPRs: 7040 -> 7088 (+0.68%)
CodeSize: 276504 -> 276308 (-0.07%); split: -0.08%, +0.01%
Instrs: 51152 -> 51111 (-0.08%); split: -0.09%, +0.01%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5415>
2020-09-28 12:06:30 +00:00
..
glsl glsl/linker: Add support for XFB varying lowering in geometry shader 2020-09-28 07:57:28 +00:00
nir nir/load_store_vectorize: improve vectorization with identical operations 2020-09-28 12:06:30 +00:00
spirv spirv: Add support for OpCopyMemorySized 2020-09-25 23:48:03 +00:00
Android.glsl.gen.mk Android: Fixes for Q and R 2020-07-15 20:49:24 +00:00
Android.glsl.mk android: glsl: build shader cache sources 2017-02-20 16:30:37 +00:00
Android.mk
Android.nir.gen.mk nir: Add missing dependency in Android.nir.gen.mk 2019-08-19 09:53:18 +03:00
Android.nir.mk android: fix libmesa_nir build 2017-07-21 08:47:56 +03:00
builtin_type_macros.h nir/vtn: Add support for kernel images to SPIRV-to-NIR. 2020-08-31 21:17:39 +00:00
glsl_types.cpp glsl_type: Add packed to structure type comparison for hash map 2020-09-18 19:33:00 +00:00
glsl_types.h nir: Add glsl_base_type unsigned -> signed version helper 2020-09-25 20:09:08 +00:00
Makefile.sources nir: Add a lowering pass to lower memcpy 2020-09-25 23:48:03 +00:00
meson.build spirv: add some tests for volatile/available/visible 2020-09-01 17:15:22 +00:00
nir_types.cpp compiler/types: Add glsl_baseN_t_type(bit_size) helpers 2020-09-25 23:48:03 +00:00
nir_types.h compiler/types: Add glsl_baseN_t_type(bit_size) helpers 2020-09-25 23:48:03 +00:00
SConscript spirv: Fix building with SCons 2018-03-30 14:33:03 -06:00
SConscript.glsl Move compiler.h and imports.h/c from src/mesa/main into src/util 2020-03-27 21:00:09 +00:00
SConscript.nir nir: mako all the intrinsics 2018-03-27 08:36:37 -04:00
SConscript.spirv spirv: Fix building with SCons 2018-03-30 14:33:03 -06:00
shader_enums.c compiler: add INTERP_MODE_COLOR for radeonsi 2020-09-02 23:03:00 -04:00
shader_enums.h compiler: add INTERP_MODE_COLOR for radeonsi 2020-09-02 23:03:00 -04:00
shader_info.h nir: Add an internal flag to shader_info 2020-09-25 20:09:08 +00:00