mesa/src/compiler
Timothy Arceri d0803dea11 nir: allow more nested loops to be unrolled
The innermost check was added to stop us from unrolling multiple
loops in a single pass, and to stop outer loops from unrolling.

When we successfully unroll a loop we need to run the analysis
pass again before deciding if we want to go ahead an unroll a
second loop.

However the logic was flawed because it never tried to unroll any
nested loops other than the first innermost loop it found.
If this innermost loop is not unrolled we end up skipping all
other nested loops.

This unrolls a loop in a Deus Ex: MD shader on ultra settings and
also unrolls a loop in a shader from the game Prey when running
on DXVK.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2018-08-18 09:03:13 +10:00
..
glsl glsl: Avoid calling get_array_element for scalar constants 2018-08-15 10:01:43 +03:00
nir nir: allow more nested loops to be unrolled 2018-08-18 09:03:13 +10:00
spirv spirv: Make VertexIndex and VertexId both non-zero-based 2018-08-13 16:23:36 +02: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 autotools: Include new meson files 2018-04-20 20:26:56 -07:00
Makefile.glsl.am glsl: fold glcpp-test-cr-lf.sh into glcpp-test.sh 2018-06-21 12:09:39 +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/linker: Add the start of a pure-NIR linker for XFB 2018-07-31 13:33:37 +02: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 to access gl_type 2018-07-31 13:33:37 +02:00
nir_types.h nir/types: Add a wrapper to access gl_type 2018-07-31 13:33:37 +02: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