From b462ceb482471dd4aacdd5fa7cef9fe25f823d70 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 5 Jan 2018 17:18:52 +0100 Subject: [PATCH] radv/gfx9: do not load VGPR1 when GS uses points or lines VGPR1 is only needed for topology that needs 3 offsets like triangles or quads. Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/vulkan/radv_shader.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 971d3ab..5d777a0 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -424,8 +424,10 @@ radv_fill_shader_variant(struct radv_device *device, gs_vgpr_comp_cnt = 3; /* VGPR3 contains InvocationID. */ else if (info->uses_prim_id) gs_vgpr_comp_cnt = 2; /* VGPR2 contains PrimitiveID. */ + else if (variant->info.gs.vertices_in >= 3) + gs_vgpr_comp_cnt = 1; /* VGPR1 contains offsets 2, 3 */ else - gs_vgpr_comp_cnt = 1; /* TODO: use input_prim */ + gs_vgpr_comp_cnt = 0; /* VGPR0 contains offsets 0, 1 */ /* TODO: Figure out how many we actually need. */ variant->rsrc1 |= S_00B228_GS_VGPR_COMP_CNT(gs_vgpr_comp_cnt); -- 2.7.4