From: Marek Olšák Date: Thu, 7 Nov 2019 01:18:23 +0000 (-0500) Subject: radeonsi/nir: don't rely on data.patch for tess factors X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=268e42e4f8be8bc0560538808bbe5df2612d2377;p=mesa.git radeonsi/nir: don't rely on data.patch for tess factors GLCTS SPIR-V tests have this issue. Acked-by: Pierre-Eric Pelloux-Prayer --- diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index b1ab398ba71..2be14857334 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -1341,7 +1341,6 @@ static void si_nir_store_output_tcs(struct ac_shader_abi *abi, struct si_shader_context *ctx = si_shader_context_from_abi(abi); struct tgsi_shader_info *info = &ctx->shader->selector->info; const unsigned component = var->data.location_frac; - const bool is_patch = var->data.patch; unsigned driver_location = var->data.driver_location; LLVMValueRef dw_addr, stride; LLVMValueRef buffer, base, addr; @@ -1357,6 +1356,10 @@ static void si_nir_store_output_tcs(struct ac_shader_abi *abi, if (!param_index) param_index = LLVMConstInt(ctx->i32, const_index, 0); + const bool is_patch = var->data.patch || + var->data.location == VARYING_SLOT_TESS_LEVEL_INNER || + var->data.location == VARYING_SLOT_TESS_LEVEL_OUTER; + assert((name == TGSI_SEMANTIC_PATCH || name == TGSI_SEMANTIC_TESSINNER || name == TGSI_SEMANTIC_TESSOUTER) == is_patch);