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

Reply via email to