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 <mary@mary.zone>
This commit is contained in:
Mary Guillemard 2024-02-10 20:27:17 +01:00 committed by GitHub
parent bd6937ae5c
commit e59dba42ef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -80,9 +80,10 @@ namespace Ryujinx.Graphics.Shader.Translation
return; 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. // 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)
{
this.Store(StorageKind.Output, IoVariable.PointSize, null, ConstF(TranslatorContext.Definitions.PointSize)); this.Store(StorageKind.Output, IoVariable.PointSize, null, ConstF(TranslatorContext.Definitions.PointSize));
} }