On Monday, July 06, 2015 04:24:12 PM Emil Velikov wrote: > Hello gents, > > On 2 July 2015 at 08:45, Kenneth Graunke <kenn...@whitecape.org> wrote: > > On Wednesday, July 01, 2015 10:16:28 AM Mike Stroyan wrote: > >> 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. > >> --- > >> src/mesa/drivers/dri/i965/gen6_cc.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/src/mesa/drivers/dri/i965/gen6_cc.c > >> b/src/mesa/drivers/dri/i965/gen6_cc.c > >> index 2bfa271..2b76e24 100644 > >> --- a/src/mesa/drivers/dri/i965/gen6_cc.c > >> +++ b/src/mesa/drivers/dri/i965/gen6_cc.c > >> @@ -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; > >> > > > > Great catch! > > > > Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> > > > > And pushed: > > 9d408a4..fe2b748 master -> master > > > > I think we ought to change gen8_blend_state.c as well, but I'm not quite > > sure what change to make. Either we should make the same change you did > > here, or delete the whole "We need at least 1 BLEND_STATE written" > > block. > > > > On Gen8+, it looks like the alpha test and other functions that might > > discard pixels are all in the shared/common DWord, and the per-color > > target DWord pairs look relatively harmless. I suppose the null RT > > would still refer to BLEND_STATE[0]...so it might still be worth > > emitting one. Any thoughts? > Should we get this into 10.6 or there are some not so obvious > dependencies that we're missing in the 10.6 branch ? Asking every user > to rebuild mesa just to play Dota2 seems unreasonable imho. > > Cheers, > Emil
Yeah, it should definitely land in 10.6. I think I just forgot to add the Cc stable tag (sorry!). It shouldn't have any dependencies. --Ken
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev