mesa/src
Jordan Justen b1f22c6317 i965: Enable cross-thread constants and compact local IDs for hsw+
The cross thread constant support appears on Haswell. It allows us to
upload a set of uniform data for all threads without duplicating it
per thread.

One complication is that cross-thread constants are loaded into
registers before per-thread constants. Previously, our local IDs were
loaded before the uniform data and treated as 'payload' data, even
though they were actually pushed into the registers like the other
uniform data.

Therefore, in this patch we simultaneously enable a newer layout where
each thread now uses a single uniform slot for a unique local ID for
the thread. This uniform is handled specially to make sure it is added
last into the uniform push constant registers. This minimizes our
usage of push constant registers, and maximizes our ability to use
cross-thread constants for registers.

To swap from the old to the new layout, we also need to flip some
lowering pass switches to let our driver handle the lowering instead.
We also no longer force thread_local_id_index to -1.

v4:
 * Minimize size of patch that switches from the old local ID layout
   to the new layout (Jason)

Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2016-06-01 19:29:02 -07:00
..
compiler i965: Add nir channel_num system value 2016-06-01 19:29:02 -07:00
egl mesa_glinterop: remove mesa_glinterop typedefs 2016-05-30 17:53:44 +01:00
gallium winsys/amdgpu: decay max_ib_size over time 2016-06-01 22:52:20 +02:00
gbm gbm: remove define _DEFAULT_SOURCE 2016-05-23 12:09:11 +01:00
getopt
glx mesa_glinterop: remove mesa_glinterop typedefs 2016-05-30 17:53:44 +01:00
gtest
hgl
intel anv: Support new local ID generation & cross-thread constants 2016-06-01 19:29:02 -07:00
loader loader: add a libdrm case for loader_get_device_name_for_fd 2016-04-21 14:41:41 +01:00
mapi mapi: expose new functions in GL ES 3.2 2016-05-26 21:25:53 -04:00
mesa i965: Enable cross-thread constants and compact local IDs for hsw+ 2016-06-01 19:29:02 -07:00
util mesa: Add .gitignore entries for make check binaries 2016-05-25 09:41:44 -07:00
Makefile.am automake: rework the git_sha1.h rule, include in tarball 2016-05-30 17:53:45 +01:00
SConscript glsl: move to compiler/ 2016-01-26 16:08:33 +00:00