Am 02.11.2015 um 15:56 schrieb Oded Gabbay: > If we don't have any constants, just exit emit_fetch_constat() and don't > call LLVM functions. > > This also prevents a crash that happens when we emit the prologue of the > fragment shader when DEBUG_EXECUTION is set to 1 and we don't have > constants (e.g. arb_blend_func_extended-fbo-extended-blend test in > piglit). > > Signed-off-by: Oded Gabbay <oded.gab...@gmail.com> > --- > src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c > b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c > index fae604e..189d5da 100644 > --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c > +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c > @@ -1238,6 +1238,9 @@ emit_fetch_constant( > consts_ptr = bld->consts[dimension]; > num_consts = bld->consts_sizes[dimension]; > > + if (!consts_ptr) > + return NULL; > + > if (reg->Register.Indirect) { > LLVMValueRef indirect_index; > LLVMValueRef swizzle_vec = >
I'm not convinced that's the right solution. Clearly, a shader trying to fetch a constant but without a const dcl is invalid. Not sure what's the problem with the debug stuff actually. Some quick look seems to say this should work, since it will output only up from 0 to file_max, and some other quick look at tgsi_scan_shader says this should be initialized to -1, thus it should never try to output anything for the const file. Might be worth trying to figure out why that's not the case. Roland _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev