mesa/src/intel
Iago Toral Quiroga 47e527bd81 i965/fs: force pull model for 64-bit GS inputs
Triggering the push model when 64-bit inputs are involved is not easy due to
the constrains on the maximum number of registers that we allow for this mode,
however, for GS with 'points' primitive type and just a couple of double
varyings we can trigger this and it just doesn't work because the
implementation is not 64-bit aware at all. For now, let's make sure that we
don't attempt this model whith 64-bit inputs and we always fall back to pull
model for them.

Also, don't enable the VUE handles in the thread payload on the fly when we
find an input for which we need the pull model, this is not safe: if we need
to resort to the pull model we need to account for that when we setup the
thread payload so we compute the first non-payload register properly. If we
didn't do that correctly and we enable it on-the-fly here then we will end up
VUE handles on the first non-payload register which will probably lead to
GPU hangs. Instead, always enable the VUE handles for the pull model so we
can safely use them when needed. The GS is going to resort to pull model
almost in every situation anyway, so this shouldn't make a significant
difference and it makes things easier and safer.

v2: Always enable the VUE handles for pull model, this is easier and safer
    and the GS is going to fallback to pull model almost always anyway (Ken)

v3: Only clamp the URB read length if we are over the maximum reserved for
    push inputs as we were doing in the original code (Ken).

v4: No need to clamp the urb read length if invocations > 1

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2017-09-29 08:18:25 +02:00
..
blorp meson: Add build Intel "anv" vulkan driver 2017-09-27 09:12:19 -07:00
common meson: Add build Intel "anv" vulkan driver 2017-09-27 09:12:19 -07:00
compiler i965/fs: force pull model for 64-bit GS inputs 2017-09-29 08:18:25 +02:00
genxml meson: Add build Intel "anv" vulkan driver 2017-09-27 09:12:19 -07:00
isl meson: Add build Intel "anv" vulkan driver 2017-09-27 09:12:19 -07:00
tools meson: Add build Intel "anv" vulkan driver 2017-09-27 09:12:19 -07:00
vulkan meson: remove duplicate libisl dependency in anv 2017-09-28 10:06:00 -07: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 anv: Feed vk_android_native_buffer.xml to generators (v2) 2017-09-18 14:26:54 -07:00
Makefile.am configure: Test for -Wno-initializer-overrides 2017-08-29 15:20:57 -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: 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 i965/cnl: Wire up Mesa build files for gen10 2017-06-09 16:02:58 -07:00
Makefile.sources intel: automake: add isl_genX_priv.h in the source list 2017-09-19 19:23:46 +02: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 configure.ac: split the wayland client/server confusion 2017-09-19 19:02:34 +01:00
meson.build meson: Add build Intel "anv" vulkan driver 2017-09-27 09:12:19 -07:00