mesa/src
Kenneth Graunke c31b4420e7 st/nir: Re-vectorize shader IO
We scalarize IO to enable further optimizations, such as propagating
constant components across shaders, eliminating dead components, and
so on.  This patch attempts to re-vectorize those operations after
the varying optimizations are done.

Intel GPUs are a scalar architecture, but IO operations work on whole
vec4's at a time, so we'd prefer to have a single IO load per vector
rather than 4 scalar IO loads.  This re-vectorization can help a lot.

Broadcom GPUs, however, really do want scalar IO.  radeonsi may want
this, or may want to leave it to LLVM.  So, we make a new flag in the
NIR compiler options struct, and key it off of that, allowing drivers
to pick.  (It's a bit awkward because we have per-stage settings, but
this is about IO between two stages...but I expect drivers to globally
prefer one way or the other.  We can adjust later if needed.)

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-05-28 01:06:48 -07:00
..
amd radv add radv_get_resolve_pipeline() in the compute path 2019-05-28 08:17:26 +02:00
broadcom nir: Drop imov/fmov in favor of one mov instruction 2019-05-24 08:38:11 -05:00
compiler st/nir: Re-vectorize shader IO 2019-05-28 01:06:48 -07:00
egl egl: Allow EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY in ES and GL 2019-05-17 15:13:15 -07:00
freedreno nir: Drop imov/fmov in favor of one mov instruction 2019-05-24 08:38:11 -05:00
gallium radeonsi: clean up winsys creation 2019-05-27 15:26:06 -04:00
gbm gbm: gbm_bo_get_handle_for_plane fallback to nonplanar handle 2019-05-15 18:27:30 +01:00
getopt
glx Revert "glx: Fix synthetic error generation in __glXSendError" 2019-05-08 13:16:44 +10: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: delete demo file 2019-05-21 14:40:22 +01:00
intel anv: fix apply_pipeline_layout pass for arrays of YCbCr descriptors 2019-05-27 22:47:53 +01:00
loader Delete autotools 2019-04-15 13:44:29 -07:00
mapi meson: make nm binary optional 2019-05-03 10:58:05 -07:00
mesa st/nir: Re-vectorize shader IO 2019-05-28 01:06:48 -07:00
util radeonsi: add drirc workaround for American Truck Simulator 2019-05-28 08:47:44 +10:00
vulkan vk/util: suppress warning about out-of-enum android value 2019-05-23 15:28:43 +00:00
meson.build turnip: Add driver skeleton (v2) 2019-03-11 10:01:15 -07:00
SConscript scons: Remove gles option. 2018-10-19 16:50:26 +01:00