[Mesa-dev] [PATCH 21/18] ac: skip type for tcs input on RADV

Timothy Arceri tarceri at itsqueeze.com
Mon Dec 11 09:56:31 UTC 2017


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



More information about the mesa-dev mailing list