mesa/src/compiler
Connor Abbott 47e7c6961a nir: add a vectorization pass
This effectively does the opposite of nir_lower_alus_to_scalar, trying
to combine per-component ALU operations with the same sources but
different swizzles into one larger ALU operation. It uses a similar
model as CSE, where we do a depth-first approach and keep around a hash
set of instructions to be combined, but there are a few major
differences:

1. For now, we only support entirely per-component ALU operations.
2. Since it's not always guaranteed that we'll be able to combine
equivalent instructions, we keep a stack of equivalent instructions
around, trying to combine new instructions with instructions on the
stack.

The pass isn't comprehensive by far; it can't handle operations where
some of the sources are per-component and others aren't, and it can't
handle phi nodes. But it should handle the more common cases, and it
should be reasonably efficient.

[Alyssa: Rebase on latest master, updating with respect to typeless
moves]

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
2019-06-18 06:43:30 -07:00
..
glsl glsl: Fix out of bounds read in shader_cache_read_program_metadata 2019-06-17 21:22:19 -05:00
nir nir: add a vectorization pass 2019-06-18 06:43:30 -07:00
spirv spirv/nir: add support for AMD_shader_ballot and Groups capability 2019-06-13 12:44:23 +00:00
Android.glsl.gen.mk mesa: android: Remove unnecessary dependency tracking rules 2019-05-06 11:29:25 +00:00
Android.glsl.mk
Android.mk
Android.nir.gen.mk mesa: android: Remove unnecessary dependency tracking rules 2019-05-06 11:29:25 +00:00
Android.nir.mk
Makefile.sources nir: add a vectorization pass 2019-06-18 06:43:30 -07:00
SConscript
SConscript.glsl scons: Generate float64_glsl.h for glsl_to_nir fp64 lowering 2019-03-02 14:33:44 -08:00
SConscript.nir
SConscript.spirv
blob.c
blob.h
builtin_type_macros.h
glsl_types.cpp compiler/types: Making comparing record precision optional 2019-06-14 09:29:53 +02:00
glsl_types.h compiler/types: Making comparing record precision optional 2019-06-14 09:29:53 +02:00
meson.build meson: Build with Python 3 2018-08-10 15:15:09 -07:00
nir_types.cpp nir: silence three compiler warnings seen with MinGW 2019-05-29 13:59:24 -06:00
nir_types.h nir: move gls_type_get_{sampler,image}_count() 2019-03-21 09:13:05 -04:00
shader_enums.c compiler: rename SYSTEM_VALUE_VARYING_COORD 2019-04-25 14:13:31 -07:00
shader_enums.h compiler: Add enums for blend state 2019-05-10 15:49:01 +00:00
shader_info.h spirv/nir: add support for AMD_shader_ballot and Groups capability 2019-06-13 12:44:23 +00:00