From 0464ee7f9d9383175c31192500ee9e6d9f01fe60 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 13 Aug 2020 22:12:12 -0400 Subject: [PATCH] radeonsi: don't crash if input_usage_mask is 0 for a VS input This will start happening with the lowered IO intrinstics and new scanning code. Reviewed-by: Pierre-Eric Pelloux-Prayer Reviewed-by: Connor Abbott Part-of: --- src/gallium/drivers/radeonsi/si_shader_llvm_vs.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_shader_llvm_vs.c b/src/gallium/drivers/radeonsi/si_shader_llvm_vs.c index 62ec43cd195..f0c93ac3264 100644 --- a/src/gallium/drivers/radeonsi/si_shader_llvm_vs.c +++ b/src/gallium/drivers/radeonsi/si_shader_llvm_vs.c @@ -132,8 +132,14 @@ static void load_input_vs(struct si_shader_context *ctx, unsigned input_index, L return; } - /* Do multiple loads for special formats. */ unsigned required_channels = util_last_bit(info->input_usage_mask[input_index]); + if (required_channels == 0) { + for (unsigned i = 0; i < 4; ++i) + out[i] = LLVMGetUndef(ctx->ac.f32); + return; + } + + /* Do multiple loads for special formats. */ LLVMValueRef fetches[4]; unsigned num_fetches; unsigned fetch_stride; -- 2.30.2