mesa/src/intel
Francisco Jerez c063e88909 intel/fs: Handle surface opcode sample masks via predication.
The main motivation is to enable HDC surface opcodes on ICL which no
longer allows the sample mask to be provided in a message header, but
this is enabled all the way back to IVB when possible because it
decreases the instruction count of some shaders using HDC messages
significantly, e.g. one of the SynMark2 CSDof compute shaders
decreases instruction count by about 40% due to the removal of header
setup boilerplate which in turn makes a number of send message
payloads more easily CSE-able.  Shader-db results on SKL:

 total instructions in shared programs: 15325319 -> 15314384 (-0.07%)
 instructions in affected programs: 311532 -> 300597 (-3.51%)
 helped: 491
 HURT: 1

Shader-db results on BDW where the optimization needs to be disabled
in some cases due to hardware restrictions:

 total instructions in shared programs: 15604794 -> 15598028 (-0.04%)
 instructions in affected programs: 220863 -> 214097 (-3.06%)
 helped: 351
 HURT: 0

The FPS of SynMark2 CSDof improves by 5.09% ±0.36% (n=10) on my SKL
laptop with this change.  According to Eero this improves performance
of the same test by 9% on BYT and by 7-8% on BXT J4205 and on SKL GT2
desktop.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-By: Eero Tamminen <eero.t.tamminen@intel.com>
2018-03-02 11:28:56 -08:00
..
blorp intel/blorp: Add indirect clear color support to mcs_partial_resolve 2018-03-01 14:07:58 -08:00
common intel/l3: Don't allocate SLM partition on ICL+. 2018-03-02 11:28:56 -08:00
compiler intel/fs: Handle surface opcode sample masks via predication. 2018-03-02 11:28:56 -08:00
genxml intel/genxml/icl: Update genx_bits header 2018-02-15 16:14:55 -08:00
isl isl/i965/fs: SSBO/UBO buffers need size padding if not multiple of 32-bit 2018-02-28 21:37:40 -08:00
tools intel/tools: Use gen_device_name_to_pci_device_id in aubinator 2018-02-27 11:15:10 -08:00
vulkan anv: Enable MSAA fast-clears 2018-03-01 14:07:58 -08:00
Android.blorp.mk intel: android: remove libdrm_intel requirement 2017-03-30 19:07:23 +01:00
Android.common.mk android: link libmesa_intel_common with zlib and expat 2017-08-02 10:30:50 +03:00
Android.compiler.mk android: fix build issues with brw_nir_trig_workarounds.c 2017-10-04 07:39:05 +03:00
Android.genxml.mk intel/genxml/icl: Generate packing headers 2018-02-15 16:14:55 -08:00
Android.isl.mk intel/isl/icl: Build and use gen11 surface state emit functions 2018-02-15 16:14:55 -08:00
Android.mk intel/vulkan: Get rid of recursive make 2017-03-13 11:16:35 +00:00
Android.vulkan.mk android: fix source files path for libmesa_anv_gen11 2018-02-27 14:16:08 +02:00
Makefile.am autotools: include meson build files in tarball 2018-01-19 16:30:51 -08:00
Makefile.blorp.am blorp: automake: add TODO to the tarball 2017-02-24 17:37:00 +00:00
Makefile.common.am automake: intel: correctly append to the LIBADD variable 2017-11-08 14:23:57 +00:00
Makefile.compiler.am intel: use a flag instead of setting PYTHONPATH 2017-09-27 09:07:28 -07:00
Makefile.genxml.am intel: genxml: automake: include gen_bits_header.py in the tarball 2017-04-05 13:16:28 +01:00
Makefile.isl.am intel/isl/icl: Build and use gen11 surface state emit functions 2018-02-15 16:14:55 -08:00
Makefile.sources intel: add new common header gen_defines.h 2018-02-28 14:36:57 +02:00
Makefile.tools.am intel/tools: Convert aubinator over to the common framework 2017-12-14 13:27:24 -08:00
Makefile.vulkan.am anv/icl: Build anv libs for gen11 2018-02-16 11:10:32 -08:00
meson.build meson: Add build Intel "anv" vulkan driver 2017-09-27 09:12:19 -07:00