i965: allocate at least 1 BLEND_STATE element
authorMike Stroyan <mike@lunarg.com>
Wed, 1 Jul 2015 16:16:28 +0000 (10:16 -0600)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 2 Jul 2015 07:12:52 +0000 (00:12 -0700)
commitfe2b748a39ff676949fcefccf739aff967fc38c5
tree8b131589ff3fbdd8d24992b61cdfed50e4c50944
parent9d408a41a3ab2fe456ebf2f7af7bad8f6c4bca17
i965: allocate at least 1 BLEND_STATE element

When there are no color buffer render targets, gen6 and gen7 still
use the first BLEND_STATE element to determine alpha test.
gen6_upload_blend_state was allocating zero elements when
ctx->Color.AlphaEnabled was false.
That left _3DSTATE_CC_STATE_POINTERS or _3DSTATE_BLEND_STATE_POINTERS
pointing to random data from some previous brw_state_batch().
That sometimes suppressed depth rendering when those bits
happened to mean COMPAREFUNC_NEVER.
This produced flickering shadows for dota2 reborn.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80500
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/gen6_cc.c