summaryrefslogtreecommitdiffstats
path: root/m4
diff options
context:
space:
mode:
authorIago Toral Quiroga <[email protected]>2017-09-27 11:36:31 +0200
committerIago Toral Quiroga <[email protected]>2017-09-29 08:18:25 +0200
commit47e527bd81f21cd18333fa7923d8ae8fd3a74d2c (patch)
tree65f1f2f88f1c8c1dbad02de21d8532bf7733f2da /m4
parent2df897cf1ffd5ae01ecdbb66195d292a2a15df91 (diff)
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 <[email protected]>
Diffstat (limited to 'm4')
0 files changed, 0 insertions, 0 deletions