From: Marek Olšák <marek.ol...@amd.com> This fixes: GL45-CTS.tessellation_shader.tessellation_control_to_tessellation_evaluation .gl_PatchVerticesIn --- src/gallium/drivers/radeonsi/si_shader.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 2863faa..6eca5cf 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -1723,21 +1723,26 @@ static void declare_system_value( if (ctx->shader->selector->info.properties[TGSI_PROPERTY_TES_PRIM_MODE] == PIPE_PRIM_TRIANGLES) coord[2] = lp_build_sub(bld, bld->one, lp_build_add(bld, coord[0], coord[1])); value = lp_build_gather_values(gallivm, coord, 4); break; } case TGSI_SEMANTIC_VERTICESIN: - value = unpack_param(ctx, SI_PARAM_TCS_OUT_LAYOUT, 26, 6); + if (ctx->type == PIPE_SHADER_TESS_CTRL) + value = unpack_param(ctx, SI_PARAM_TCS_OUT_LAYOUT, 26, 6); + else if (ctx->type == PIPE_SHADER_TESS_EVAL) + value = unpack_param(ctx, SI_PARAM_TCS_OFFCHIP_LAYOUT, 9, 7); + else + assert(!"invalid shader stage for TGSI_SEMANTIC_VERTICESIN"); break; case TGSI_SEMANTIC_TESSINNER: case TGSI_SEMANTIC_TESSOUTER: { LLVMValueRef rw_buffers, buffer, base, addr; int param = si_shader_io_get_unique_index(decl->Semantic.Name, 0); rw_buffers = LLVMGetParam(ctx->radeon_bld.main_fn, SI_PARAM_RW_BUFFERS); -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev