mesa/src
Jason Ekstrand 6d5d89d25a intel/nir: Vectorize all IO
The IO scalarization pass that we run to help with linking end up
turning some shader I/O such as that for tessellation and geometry
shaders into many scalar URB operations rather than one vector one.  To
alleviate this, we now vectorize the I/O once again.  This fixes a 10%
performance regression in the GfxBench tessellation test that was caused
by scalarizing.

Shader-db results on Kaby Lake:

    total instructions in shared programs: 15224023 -> 15220871 (-0.02%)
    instructions in affected programs: 342009 -> 338857 (-0.92%)
    helped: 1236
    HURT: 443

    total spills in shared programs: 23471 -> 23465 (-0.03%)
    spills in affected programs: 6 -> 0
    helped: 1
    HURT: 0

    total fills in shared programs: 31770 -> 31766 (-0.01%)
    fills in affected programs: 4 -> 0
    helped: 1
    HURT: 0

Cycles was just a lot of churn do to moves being different places.  Most
of the pure churn in instructions was +/- one or two instructions in
fragment shaders.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107510
Fixes: 4434591bf5 "intel/nir: Call nir_lower_io_to_scalar_early"
Fixes: 8d8222461f "intel/nir: Enable nir_opt_find_array_copies"
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2019-03-12 15:34:06 +00:00
..
amd ac/nir: fix 16-bit ssbo stores 2019-03-12 15:51:52 +01:00
broadcom v3d: Use the DAG datastructure for QPU instruction scheduling. 2019-03-11 13:14:32 -07:00
compiler nir: Add a pass for lowering IO back to vector when possible 2019-03-12 15:34:06 +00:00
egl egl: fix libdrm-less builds 2019-03-05 13:04:06 +00:00
freedreno turnip: preliminary support for Wayland WSI 2019-03-11 10:02:13 -07:00
gallium radeonsi/nir: Use nir stripping pass 2019-03-12 10:49:48 +01:00
gbm
getopt
glx glx/meson: use full include path for dri_interface.h 2019-03-08 18:00:19 +00:00
gtest
hgl hgl/meson: drop unused include directory 2019-03-08 18:00:19 +00:00
imgui imgui: update memory editor 2019-02-26 12:49:07 +00:00
intel intel/nir: Vectorize all IO 2019-03-12 15:34:06 +00:00
loader loader: use loader_open_device() to handle O_CLOEXEC 2019-02-26 11:07:23 +00:00
mapi autotools: don't build libGLES*.so with GLVND 2019-03-08 15:13:36 +00:00
mesa st/glsl_to_nir: fix incorrect arrary access 2019-03-12 14:47:21 +11:00
util util: Add a DAG datastructure. 2019-03-11 13:13:52 -07:00
vulkan wsi/x11: use WSI_FROM_HANDLE() instead of pointer casts 2019-03-11 10:49:36 +00:00
Makefile.am
meson.build turnip: Add driver skeleton (v2) 2019-03-11 10:01:15 -07:00
SConscript