From 7bd4dd79c8e6d7ad6824a51a2c1cabe3e08cdada Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 6 May 2021 17:40:25 -0400 Subject: [PATCH] radeonsi/gfx11: expect packed threadID VGPRs Acked-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_shader.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 9399cd98782..15f6754dc85 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -759,7 +759,9 @@ void si_init_shader_args(struct si_shader_context *ctx, bool ngg_cull_shader) ac_add_arg(&ctx->args, AC_ARG_SGPR, 1, AC_ARG_INT, &ctx->args.tg_size); /* Hardware VGPRs. */ - if (!ctx->screen->info.has_graphics && ctx->screen->info.family >= CHIP_ALDEBARAN) + /* Thread IDs are packed in VGPR0, 10 bits per component or stored in 3 separate VGPRs */ + if (ctx->screen->info.chip_class >= GFX11 || + (!ctx->screen->info.has_graphics && ctx->screen->info.family >= CHIP_ALDEBARAN)) ac_add_arg(&ctx->args, AC_ARG_VGPR, 1, AC_ARG_INT, &ctx->args.local_invocation_ids); else ac_add_arg(&ctx->args, AC_ARG_VGPR, 3, AC_ARG_INT, &ctx->args.local_invocation_ids);