mesa/src/compiler
Jason Ekstrand ff972c7a3a nir/loop_analyze: Properly handle swizzles in loop conditions
This commit re-plumbs all of nir_loop_analyze to use nir_ssa_scalar for
all intermediate values so that we can properly handle swizzles.  Even
though if conditions are required to be scalars, they may still consume
swizzles so you could have ((a.yzw < b.zzx).xz && c.xx).y == 0 as your
loop termination condition.  The old code would just bail the moment it
saw its first non-zero swizzle but we can now properly chase the scalar
from the if condition to all the way to a, b, and c.

Shader-db results on Kaby Lake:

    total loops in shared programs: 4388 -> 4364 (-0.55%)
    loops in affected programs: 29 -> 5 (-82.76%)
    helped: 29
    HURT: 5

Shader-db results on Haswell:

    total loops in shared programs: 4370 -> 4373 (0.07%)
    loops in affected programs: 2 -> 5 (150.00%)
    helped: 2
    HURT: 5

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2019-07-10 00:20:59 +00:00
..
glsl glsl/standalone: meson test for --dump-builder 2019-07-03 12:13:37 -07:00
nir nir/loop_analyze: Properly handle swizzles in loop conditions 2019-07-10 00:20:59 +00:00
spirv spirv: Implement SPV_EXT_demote_to_helper_invocation 2019-07-08 08:57:25 -07: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 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/nir: add glsl_types::explicit_size plus nir C wrapper 2019-06-30 16:58:26 -05:00
glsl_types.h glsl/nir: add glsl_types::explicit_size plus nir C wrapper 2019-06-30 16:58:26 -05:00
Makefile.sources anv,nir: Move lower_input_attachments pass from ANV to NIR. 2019-07-08 14:02:50 +02:00
meson.build meson: Build with Python 3 2018-08-10 15:15:09 -07:00
nir_types.cpp nir_types: add glsl_type_is_leaf helper 2019-06-30 16:58:26 -05:00
nir_types.h nir_types: add glsl_type_is_leaf helper 2019-06-30 16:58:26 -05:00
SConscript spirv: Fix building with SCons 2018-03-30 14:33:03 -06:00
SConscript.glsl scons: Generate float64_glsl.h for glsl_to_nir fp64 lowering 2019-03-02 14:33:44 -08: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 color system value 2019-07-08 14:18:34 +02:00
shader_enums.h compiler: Add color system value 2019-07-08 14:18:34 +02:00
shader_info.h spirv: Implement SPV_EXT_demote_to_helper_invocation 2019-07-08 08:57:25 -07:00