Skip to content

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)

Merge request reports

Loading