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; } }