mesa/src
Kenneth Graunke b593737ed8 i965: Switch to scalar TCS by default.
Normally, we expect SIMD8 shaders to be more instructions than SIMD4x2
shaders, as it takes four instructions to operate on a vec4, rather than
a single instruction.  However, the benefit is that it can process 8
objects per shader thread instead of 2.

Surprisingly, the shader-db statistics show an improvement in both
instruction and cycle counts:

Synmark: -31.25% instructions, -29.27% cycles, 0 hurt.
Tessmark: -36.92% instructions, -37.81% cycles, 0 hurt.
Unigine Heaven: -3.42% instructions, -17.95% cycles, 0 hurt.
Shadow of Mordor:
   +13.24% instructions (26 with fewer instructions, 45 with more),
   -5.23% cycles (44 with fewer cycles, 27 with more cycles).

Presumably, this is because the SIMD8 URB messages are a much more
natural fit than the SIMD4x2 URB messages - there's a ton less header
setup.

I benchmarked Shadow of Mordor and Unigine Heaven on my Skylake GT3e,
and the performance seems to be the same or increase ever so slightly
(< 1 FPS difference).  So I believe it's strictly superior.

There's also a lot more optimization potential we can do in scalar mode.

This will also help us finish fp64 support, as scalar support is going
to land much sooner than vec4-mode support.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
2016-05-05 14:24:00 -07:00
..
compiler nir: Optimize out stores of undefs. 2016-05-05 14:24:00 -07:00
egl egl: android: do not feed invalid fourcc/pitch into the dri module 2016-05-01 12:31:29 +01:00
gallium swr: [rasterizer core] Faster modulo operator in ProcessVerts 2016-05-05 14:50:11 -05:00
gbm automake: drop "EGL_" from HAVE_EGL_PLATFORM_WAYLAND 2016-05-01 08:38:05 +01:00
getopt
glx dri3: Check for dummyContext to see if the glx_context is valid 2016-04-27 13:03:34 +01:00
gtest
hgl
intel anv: fix hang during generation of dev_icd.json. 2016-05-03 11:42:47 +01:00
loader loader: add a libdrm case for loader_get_device_name_for_fd 2016-04-21 14:41:41 +01:00
mapi glapi: fix parameter type for GetSamplerParameterIuivEXT() in es_EXT.xml 2016-05-04 14:49:39 -06:00
mesa i965: Switch to scalar TCS by default. 2016-05-05 14:24:00 -07:00
util st/glsl_to_tgsi: reduce stack explosion in recursive expression visitor 2016-04-29 11:52:59 -05:00
Makefile.am automake: tweak SUBDIR reorder and comment it 2016-05-01 08:38:05 +01:00
SConscript glsl: move to compiler/ 2016-01-26 16:08:33 +00:00