radeonsi: postponed KILL isn't postponed anymore, but maintains WQM
authorMarek Olšák <marek.olsak@amd.com>
Wed, 4 Oct 2017 03:07:50 +0000 (05:07 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 24 Oct 2017 12:56:34 +0000 (14:56 +0200)
commit2a414c39619320c44e4d0f8f7a7609598081e2b2
tree2ac67cd6bd4fdc47a5301dd8575520950610344f
parentda0083f1237cb89bc818be99dd0717b7e76b6248
radeonsi: postponed KILL isn't postponed anymore, but maintains WQM

This restores performance for the drirc workaround, i.e.
KILL_IF does:
   visible = src0 >= 0;
   kill_flag &= visible; // accumulate kills
   amdgcn_kill(wqm_vote(visible)); // kill fully dead quads only

And all helper pixels are killed at the end of the shader:
   amdgcn_kill(kill_flag);

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/amd/common/ac_llvm_build.c
src/amd/common/ac_llvm_build.h
src/gallium/drivers/radeonsi/si_shader_tgsi_alu.c