i965: Fix GPU hang related to multiple render targets and alpha testing
authorAnuj Phogat <anuj.phogat@gmail.com>
Mon, 24 Oct 2016 23:03:00 +0000 (16:03 -0700)
committerAnuj Phogat <anuj.phogat@gmail.com>
Tue, 8 Nov 2016 22:22:53 +0000 (14:22 -0800)
commitb9df2251c17e3ce52fa55c81f492591e08c3ee04
tree2f5c3a638c2c3057f89866f578b9e40ee9a2faf5
parent95ed1c19bf379ace583adfe520e1673675d17062
i965: Fix GPU hang related to multiple render targets and alpha testing

This patch should have been the part of commit e592f7df.
In a situation when there are multiple render targets with alpha testing
enabled, if fragment shader doesn't write to draw buffer zero, it causes
the GPU hang on SKL. No GPU hang is seen on HSW. Simulator gives a
warning for all gen6+ h/w:
"Illegal render target write message length 0xa expected 0xc"

This patch fixes the GPU hang as well as the simulator warning with
new piglit test fbo-mrt-alphatest-no-buffer-zero-write:
https://patchwork.freedesktop.org/patch/118212

No regressions in Jenkins CI system.

Cc: "12.0 13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
src/mesa/drivers/dri/i965/brw_fs.cpp