intel/fs: Disable sample mask predication for scratch stores for 20.1
Scratch stores are being lowered to the instructions with side-effects, however they should be enabled in fs helper invocations, since they are produced from operations which don't imply side-effects.
To fix this - we move the decision of whether the sample mask predication is enable to the point where logical brw instructions are created.
GLSL example of the issue:
int tmp[1024];
...
do {
// changes to tmp
} while (some_condition(tmp))
If tmp
is lowered to scrach memory, some_condition
would be
undefined if scratch write is predicated on sample mask, making
possible for the while loop to become infinite and hang the GPU.
Closes: #3256 (closed)
Fixes: 53bfcdee
Signed-off-by: Danylo Piliaiev danylo.piliaiev@globallogic.com
Reviewed-by: Matt Turner mattst88@gmail.com
Acked-by: Jason Ekstrand jason@jlekstrand.net
(cherry picked from commit 77486db8)