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>
This commit is contained in:
parent
9d408a41a3
commit
fe2b748a39
|
@ -51,7 +51,7 @@ gen6_upload_blend_state(struct brw_context *brw)
|
|||
* with render target 0, which will reference BLEND_STATE[0] for
|
||||
* alpha test enable.
|
||||
*/
|
||||
if (nr_draw_buffers == 0 && ctx->Color.AlphaEnabled)
|
||||
if (nr_draw_buffers == 0)
|
||||
nr_draw_buffers = 1;
|
||||
|
||||
size = sizeof(*blend) * nr_draw_buffers;
|
||||
|
|
Loading…
Reference in New Issue