From 416b20d381e3eaa154fd1e287e6385b0acc4109b Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 30 Jan 2024 11:25:18 +0100 Subject: [PATCH] radv: force GS stage for VS as ES compiled separately on GFX9+ Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_shader.c | 3 +++ src/amd/vulkan/radv_shader_args.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 5c0ab976bff..94a2ef8aa11 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -1589,6 +1589,9 @@ radv_postprocess_binary_config(struct radv_device *device, struct radv_shader_bi /* Update the stage for merged shaders compiled separately with ESO on GFX9+. */ if (stage == MESA_SHADER_VERTEX && info->vs.as_ls) { stage = MESA_SHADER_TESS_CTRL; + } else if (stage == MESA_SHADER_VERTEX && info->vs.as_es) { + es_stage = MESA_SHADER_VERTEX; + stage = MESA_SHADER_GEOMETRY; } } diff --git a/src/amd/vulkan/radv_shader_args.c b/src/amd/vulkan/radv_shader_args.c index 534c47d5e73..49b5dad2355 100644 --- a/src/amd/vulkan/radv_shader_args.c +++ b/src/amd/vulkan/radv_shader_args.c @@ -527,6 +527,9 @@ declare_shader_args(const struct radv_device *device, const struct radv_graphics if (stage == MESA_SHADER_VERTEX && info->vs.as_ls) { previous_stage = MESA_SHADER_VERTEX; stage = MESA_SHADER_TESS_CTRL; + } else if (stage == MESA_SHADER_VERTEX && info->vs.as_es) { + previous_stage = MESA_SHADER_VERTEX; + stage = MESA_SHADER_GEOMETRY; } }