mesa/src/compiler
Jason Ekstrand 37f7983bcc intel/compiler: Do image load/store lowering to NIR
This commit moves our storage image format conversion codegen into NIR
instead of doing it in the back-end.  This has the advantage of letting
us run it through NIR's optimizer which is pretty effective at shrinking
things down.  In the common case of rgba8, the number of instructions
emitted after NIR is done with it is half of what it was with the
lowering happening in the back-end.  On the downside, the back-end's
lowering is able to directly use predicates and the NIR lowering has to
use IFs.

Shader-db results on Kaby Lake:

    total instructions in shared programs: 15166910 -> 15166872 (<.01%)
    instructions in affected programs: 5895 -> 5857 (-0.64%)
    helped: 15
    HURT: 0

Clearly, we don't have that much image_load_store happening in the
shaders in shader-db....

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2018-08-29 14:04:02 -05:00
..
glsl nir: Make image load/store intrinsics variable-width 2018-08-29 14:04:02 -05:00
nir intel/compiler: Do image load/store lowering to NIR 2018-08-29 14:04:02 -05:00
spirv nir: Make image load/store intrinsics variable-width 2018-08-29 14:04:02 -05:00
.gitignore nir/spirv: Remove a duplicate spirv2nir from .gitignore 2016-10-04 07:43:15 -07:00
Android.glsl.gen.mk Android: clean-up trailing '\' in make variables 2017-03-22 17:52:06 +00:00
Android.glsl.mk android: glsl: build shader cache sources 2017-02-20 16:30:37 +00:00
Android.mk Android: glsl: add rules to generate ir_expression*.h header files 2016-09-06 15:58:55 +01:00
Android.nir.gen.mk Android: fix a missing nir_intrinsics.h error 2018-07-21 08:50:23 +02:00
Android.nir.mk android: fix libmesa_nir build 2017-07-21 08:47:56 +03:00
blob.c compiler/blob: Add blob_skip_bytes 2018-07-09 23:02:33 -07:00
blob.h compiler/blob: Add blob_skip_bytes 2018-07-09 23:02:33 -07:00
builtin_type_macros.h glsl_types: vec8/vec16 support 2018-03-25 10:42:54 -04:00
glsl_types.cpp glsl: use util_snprintf() 2018-08-02 10:06:44 +03:00
glsl_types.h nir: add 16bit type information to glsl types 2018-07-23 23:16:25 +02:00
Makefile.am Revert "configure: allow building with python3" 2018-08-24 11:14:15 +01:00
Makefile.glsl.am Revert "configure: allow building with python3" 2018-08-24 11:14:15 +01:00
Makefile.nir.am nir: Fix a typo in src/compiler/Makefile.nir.am 2018-04-09 08:32:45 -06:00
Makefile.sources nir: Add an array copy optimization 2018-08-23 21:47:47 -05:00
Makefile.spirv.am spirv: autotools: add vtn_gather_types_c.py in distribution tarball 2018-04-10 10:37:46 +02:00
meson.build meson: Build with Python 3 2018-08-10 15:15:09 -07:00
nir_types.cpp nir/types: Add a wrapper for coordinate_components 2018-08-29 14:04:02 -05:00
nir_types.h nir/types: Add a wrapper for coordinate_components 2018-08-29 14:04:02 -05:00
SConscript spirv: Fix building with SCons 2018-03-30 14:33:03 -06:00
SConscript.glsl mesa: Remove prog_hash_table.c 2016-09-12 10:48:35 +10: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 SYSTEM_VALUE_VARYING_COORD 2018-08-14 17:59:02 -04:00
shader_enums.h compiler: add SYSTEM_VALUE_VARYING_COORD 2018-08-14 17:59:02 -04:00
shader_info.h compiler/spirv: add XFB and GeometryStreams capability check support 2018-07-31 13:33:28 +02:00