The type can be a struct on RADV and causes an assert() to be thrown, for radeonsi all structs should have been lowered away. --- src/amd/common/ac_nir_to_llvm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 38a840bf813..1466c7f875f 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -2972,23 +2972,25 @@ static LLVMValueRef visit_load_var(struct ac_nir_context *ctx, unsigned const_index = 0; unsigned location = instr->variables[0]->var->data.location; unsigned driver_location = instr->variables[0]->var->data.driver_location; const bool is_patch = instr->variables[0]->var->data.patch; const bool is_compact = instr->variables[0]->var->data.compact; get_deref_offset(ctx, instr->variables[0], false, NULL, is_patch ? NULL : &vertex_index, &const_index, &indir_index); + LLVMTypeRef type = ctx->nctx ? NULL : + nir2llvmtype(ctx, instr->variables[0]->var->type); + result = ctx->abi->load_tess_inputs(ctx->abi, vertex_index, indir_index, - const_index, location, driver_location, - nir2llvmtype(ctx, instr->variables[0]->var->type), + const_index, location, driver_location, type, instr->variables[0]->var->data.location_frac, instr->num_components, is_patch, is_compact); return ctx->nctx ? LLVMBuildBitCast(ctx->nctx->builder, result, get_def_type(ctx, &instr->dest.ssa), "") : result; } if (ctx->stage == MESA_SHADER_GEOMETRY) { LLVMValueRef indir_index; -- 2.14.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev