From 5fdc46ac7f6e0858c65bc6f30beb043faecccc05 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 21 Oct 2022 01:48:21 -0300 Subject: Vulkan: Fix vertex position Z conversion with geometry shader passthrough (#3781) * Vulkan: Fix vertex position Z conversion with geometry shader passthrough * Shader cache version bump --- Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Ryujinx.Graphics.Shader/Translation') diff --git a/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs b/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs index b18979d8..22747160 100644 --- a/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs +++ b/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs @@ -306,7 +306,10 @@ namespace Ryujinx.Graphics.Shader.Translation config._perPatchAttributeLocations = locationsMap; } - if (config.Stage != ShaderStage.Fragment) + // We don't consider geometry shaders using the geometry shader passthrough feature + // as being the last because when this feature is used, it can't actually modify any of the outputs, + // so the stage that comes before it is the last one that can do modifications. + if (config.Stage != ShaderStage.Fragment && (config.Stage != ShaderStage.Geometry || !config.GpPassthrough)) { LastInVertexPipeline = false; } -- cgit v1.2.3