mesa/src
Jason Ekstrand acfa2340e6 intel/fs: Handle UNDEF in split_virtual_grfs
When the UNDEF instruction was added, we didn't do anything special in
split_virtual_grfs.  This mean that anything with an UNDEF wasn't
getting split which causes problems for the compiler.  Among other
things, it makes RA harder because things are in bigger chunks.  It also
meant that dvec4s weren't getting split which means that they are larger
than the maximum register size.

Shader-db results on Kaby Lake:

    total instructions in shared programs: 14959202 -> 14960035 (<.01%)
    instructions in affected programs: 96197 -> 97030 (0.87%)
    helped: 140
    HURT: 128
    helped stats (abs) min: 1 max: 17 x̄: 1.62 x̃: 1
    helped stats (rel) min: 0.09% max: 6.15% x̄: 0.65% x̃: 0.45%
    HURT stats (abs)   min: 1 max: 825 x̄: 8.28 x̃: 1
    HURT stats (rel)   min: 0.13% max: 139.83% x̄: 1.70% x̃: 0.50%
    95% mean confidence interval for instructions value: -2.96 9.18
    95% mean confidence interval for instructions %-change: -0.56% 1.51%
    Inconclusive result (value mean confidence interval includes 0).

    total loops in shared programs: 4372 -> 4372 (0.00%)
    loops in affected programs: 0 -> 0
    helped: 0
    HURT: 0

    total cycles in shared programs: 352646771 -> 352840997 (0.06%)
    cycles in affected programs: 218600800 -> 218795026 (0.09%)
    helped: 21167
    HURT: 21411
    helped stats (abs) min: 1 max: 2924 x̄: 36.89 x̃: 10
    helped stats (rel) min: <.01% max: 41.90% x̄: 2.97% x̃: 0.98%
    HURT stats (abs)   min: 1 max: 26027 x̄: 45.54 x̃: 10
    HURT stats (rel)   min: <.01% max: 324.46% x̄: 3.88% x̃: 1.06%
    95% mean confidence interval for cycles value: 2.87 6.26
    95% mean confidence interval for cycles %-change: 0.40% 0.55%
    Cycles are HURT.

    total spills in shared programs: 8840 -> 8953 (1.28%)
    spills in affected programs: 126 -> 239 (89.68%)
    helped: 1
    HURT: 2

    total fills in shared programs: 21782 -> 21914 (0.61%)
    fills in affected programs: 431 -> 563 (30.63%)
    helped: 1
    HURT: 3

    LOST:   0
    GAINED: 5

Shader-db results on Haswell:

    total instructions in shared programs: 13320918 -> 13320769 (<.01%)
    instructions in affected programs: 40998 -> 40849 (-0.36%)
    helped: 146
    HURT: 56
    helped stats (abs) min: 1 max: 8 x̄: 2.73 x̃: 2
    helped stats (rel) min: 0.16% max: 8.60% x̄: 2.52% x̃: 2.22%
    HURT stats (abs)   min: 2 max: 23 x̄: 4.45 x̃: 4
    HURT stats (rel)   min: 0.21% max: 10.26% x̄: 6.83% x̃: 10.26%
    95% mean confidence interval for instructions value: -1.26 -0.21
    95% mean confidence interval for instructions %-change: -0.62% 0.77%
    Inconclusive result (%-change mean confidence interval includes 0).

    total loops in shared programs: 4373 -> 4373 (0.00%)
    loops in affected programs: 0 -> 0
    helped: 0
    HURT: 0

    total cycles in shared programs: 374518258 -> 374384193 (-0.04%)
    cycles in affected programs: 231101954 -> 230967889 (-0.06%)
    helped: 21427
    HURT: 19438
    helped stats (abs) min: 1 max: 2035 x̄: 31.09 x̃: 8
    helped stats (rel) min: <.01% max: 40.95% x̄: 2.42% x̃: 0.86%
    HURT stats (abs)   min: 1 max: 20875 x̄: 27.38 x̃: 8
    HURT stats (rel)   min: <.01% max: 59.09% x̄: 2.49% x̃: 0.80%
    95% mean confidence interval for cycles value: -4.49 -2.07
    95% mean confidence interval for cycles %-change: -0.14% -0.04%
    Cycles are helped.

    total spills in shared programs: 23406 -> 23411 (0.02%)
    spills in affected programs: 3 -> 8 (166.67%)
    helped: 0
    HURT: 2

    total fills in shared programs: 34845 -> 34850 (0.01%)
    fills in affected programs: 3 -> 8 (166.67%)
    helped: 0
    HURT: 2

    LOST:   0
    GAINED: 0

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111566
Fixes: f4ef34f207 "intel/fs: Add an UNDEF instruction to avoid..."
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
2019-09-13 04:12:24 +00:00
..
amd ac: replace HAVE_LLVM with LLVM_VERSION_MAJOR for atomic-optimizations 2019-09-11 10:56:46 -04:00
broadcom nir: allow specifying filter callback in lower_alu_to_scalar 2019-09-06 01:51:28 +00:00
compiler nir/lower_point_size: assume scalar PSIZ 2019-09-12 06:40:04 +00:00
drm-shim meson: replace libmesa_util with idep_mesautil 2019-08-03 00:08:37 +00:00
egl egl/android: Fix build since the DRI fourcc removal. 2019-09-12 21:54:30 +00:00
etnaviv etnaviv: Add valgrind support 2019-08-14 10:36:20 +02:00
freedreno freedreno/a6xx: pre-calculate userconst stateobj size 2019-09-12 18:07:20 -07:00
gallium freedreno/a6xx: pre-calculate userconst stateobj size 2019-09-12 18:07:20 -07:00
gbm gbm: Add buffer handling and visuals for fp16 formats 2019-08-21 18:36:57 +00:00
getopt meson: build getopt when using msvc 2019-09-10 20:36:47 +00:00
glx glx: Remove unused indirection for glx_context->fillImage 2019-09-12 13:23:32 -04:00
gtest delete autotools .gitignore files 2019-04-29 21:17:19 +00:00
hgl haiku: Fix hgl dispatch build. Tested under meson/scons. 2019-04-02 16:06:00 -05:00
imgui imgui: bump imgui memory editor copy 2019-06-18 15:34:13 +00:00
intel intel/fs: Handle UNDEF in split_virtual_grfs 2019-09-13 04:12:24 +00:00
loader dri: Use DRM_FORMAT_* instead of defining our own copy. 2019-09-11 13:05:10 -07:00
mapi glx: Remove unused indirection for glx_context->fillImage 2019-09-12 13:23:32 -04:00
mesa mesa: fix texStore for FORMAT_Z32_FLOAT_S8X24_UINT 2019-09-12 23:28:28 -04:00
panfrost nir: allow specifying filter callback in lower_alu_to_scalar 2019-09-06 01:51:28 +00:00
util meson: don't try to generate i18n translations on windows 2019-09-10 20:36:47 +00:00
vulkan wsi: add minImageCount override 2019-09-06 23:16:05 +01:00
meson.build meson: build getopt when using msvc 2019-09-10 20:36:47 +00:00
SConscript