From e59dba42efee4b7226581fa019227c2bb44fbc6c Mon Sep 17 00:00:00 2001 From: Mary Guillemard Date: Sat, 10 Feb 2024 20:27:17 +0100 Subject: [PATCH] Set PointSize in shader on OpenGL (#6292) Previously we were only doing it for Vulkan, but it turns out that not setting it when PROGRAM_POINT_SIZE is set is considered UB on OpenGL Core. Signed-off-by: Mary --- src/Ryujinx.Graphics.Shader/Translation/EmitterContext.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Ryujinx.Graphics.Shader/Translation/EmitterContext.cs b/src/Ryujinx.Graphics.Shader/Translation/EmitterContext.cs index f1dffb351..e1157eea4 100644 --- a/src/Ryujinx.Graphics.Shader/Translation/EmitterContext.cs +++ b/src/Ryujinx.Graphics.Shader/Translation/EmitterContext.cs @@ -80,9 +80,10 @@ namespace Ryujinx.Graphics.Shader.Translation return; } - if (TranslatorContext.Definitions.Stage == ShaderStage.Vertex && TranslatorContext.Options.TargetApi == TargetApi.Vulkan) + // Vulkan requires the point size to be always written on the shader if the primitive topology is points. + // OpenGL requires the point size to be always written on the shader if PROGRAM_POINT_SIZE is set. + if (TranslatorContext.Definitions.Stage == ShaderStage.Vertex) { - // Vulkan requires the point size to be always written on the shader if the primitive topology is points. this.Store(StorageKind.Output, IoVariable.PointSize, null, ConstF(TranslatorContext.Definitions.PointSize)); }