mesa/src/intel
Chris Wilson 6c530ad116 i965: Reduce passing 2x32b of reloc_domains to 2 bits
The kernel only cares about whether the object is to be written to or
not, only reduces (reloc.read_domains, reloc.write_domain) down to just
!!reloc.write_domain. When we use NO_RELOC, the kernel doesn't even read
those relocs and instead userspace has to pass that information in the
execobject.flags. We can simplify our reloc api by also removing the
unused read/write domains and only pass the resultant flags.

The caveat to the above are when we need to make the kernel aware that
certain objects need to take into account different work arounds.
Previously, this was done using the magic (INSTRUCTION, INSTRUCTION)
reloc domains. NO_RELOC requires this to be passed in the execobject
flags as well, and now we push that up the callstack.

The API is more compact, more expressive of what happens underneath, but
unfortunately requires more knowledge of the system at the point of use.
Conversely it also means that knowledge is specific and not generally
applied and so not overused.

   text	   data	    bss	    dec	    hex	filename
8502991	 356912	 424944	9284847	 8dacef	lib/i965_dri.so (before)
8500455	 356912	 424944	9282311	 8da307	lib/i965_dri.so (after)

v2: (by Ken) Rebase.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2017-08-04 10:26:37 -07:00
..
blorp i965: Reduce passing 2x32b of reloc_domains to 2 bits 2017-08-04 10:26:37 -07:00
common intel/decoder: Reuse the gen_make_gen() helper. 2017-07-25 14:44:52 -07:00
compiler intel/vec4/gs: reset nr_pull_param if DUAL_INSTANCED compile failed. 2017-08-03 16:54:08 +10:00
genxml intel: genxml: make a couple of enums show up in aubinator 2017-07-02 00:45:38 +01:00
isl intel/isl: Add some sanity checks for compressed surfaces 2017-07-22 21:41:12 -07:00
tools aubinator: don't leak fd of opened aubfile 2017-07-13 22:50:50 +01:00
vulkan anv: put anv_extensions.c in gitignore 2017-08-03 16:14:45 +01: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 intel: android: remove libdrm_intel requirement 2017-03-30 19:07:23 +01:00
Android.genxml.mk i965/cnl: Wire up android Mesa build files for gen10 2017-06-09 16:02:58 -07:00
Android.isl.mk i965/cnl: Wire up android Mesa build files for gen10 2017-06-09 16:02:58 -07:00
Android.mk intel/vulkan: Get rid of recursive make 2017-03-13 11:16:35 +00:00
Android.vulkan.mk android: anv_extensions.c is generated to libmesa_vulkan_common 2017-08-03 13:09:59 +03:00
Makefile.am intel/isl: Add basic modifier introspection 2017-07-12 21:15:46 -07:00
Makefile.blorp.am blorp: automake: add TODO to the tarball 2017-02-24 17:37:00 +00:00
Makefile.common.am intel: move gen_decoder.* back to COMMON_FILES 2017-08-02 10:31:13 +03:00
Makefile.compiler.am intel/compiler: link all tests again gtest, even test_eu_compact" 2017-03-13 11:16:35 +00: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 i965/cnl: Wire up Mesa build files for gen10 2017-06-09 16:02:58 -07:00
Makefile.sources intel: move gen_decoder.* back to COMMON_FILES 2017-08-02 10:31:13 +03:00
Makefile.tools.am intel: tools: add intel_aub.h as part of aubinator 2017-06-29 10:03:40 +02:00
Makefile.vulkan.am anv: Makefile.vulkan.am: ICD json files are now generated with python 2017-08-04 09:54:46 +02:00