Reading brw->fragment_program is nonsensical in compiler code: it contains the currently active program (if any), not the one currently being compiled. Attempting to access it may either lead to crashes (null pointer dereference if no program is active) or wrong results.
Not known to fix anything, but that's probably just due to a lack of testing. NOTE: This is a candidate for stable release branches. Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> Reported-by: Paul Berry <stereotype...@gmail.com> --- src/mesa/drivers/dri/i965/brw_wm_pass2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_wm_pass2.c b/src/mesa/drivers/dri/i965/brw_wm_pass2.c index 562a189..f20e0b7 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_pass2.c +++ b/src/mesa/drivers/dri/i965/brw_wm_pass2.c @@ -86,7 +86,7 @@ static void init_registers( struct brw_wm_compile *c ) if (intel->gen >= 6) { for (unsigned int j = 0; j < FRAG_ATTRIB_MAX; j++) { - if (brw->fragment_program->Base.InputsRead & BITFIELD64_BIT(j)) { + if (c->fp->program.Base.InputsRead & BITFIELD64_BIT(j)) { nr_interp_regs++; prealloc_reg(c, &c->payload.input_interp[j], i++); } -- 1.7.11.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev