i965: Fix Haswell discard regressions since Gen4-5 line AA fix.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 11 Jun 2014 01:50:03 +0000 (18:50 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 12 Jun 2014 07:56:08 +0000 (00:56 -0700)
commita2ad771671d94feae16b35c26ed4d1907f74f50e
tree55ebc86e71a1d1cea522c0be2e6b1f6cf6478d1b
parentbe5e5b6c9364fcac8f26bc2875ffcfbaa4e17b45
i965: Fix Haswell discard regressions since Gen4-5 line AA fix.

In commit dc2d3a7f5c217a7cee92380fbf503924a9591bea, Iago accidentally
moved fire_fb_write() above the brw_pop_insn_state(), which caused the
SEND to lose its predication and change from WE_normal to WE_all.
Haswell uses predicated SENDs for discards, so this broke Piglit's
tests for discards.

We want the Gen4-5 MOV to be uncompressed, unpredicated, and unmasked,
but the actual FB write itself should respect those.  So, pop state
first, and force it again around the single MOV.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79903
src/mesa/drivers/dri/i965/brw_fs_generator.cpp