0
0
Fork 0

Fix gl_in being used with built-in variables that are not per-vertex (#1624)

This commit is contained in:
gdkchan 2020-10-17 05:16:40 -03:00 committed by GitHub
parent b4d8d893a4
commit 5264d55b39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 1 deletions

View file

@ -206,7 +206,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
string name = builtInAttr.Name; string name = builtInAttr.Name;
if (config.Stage == ShaderStage.Geometry && !isOutAttr) if (config.Stage == ShaderStage.Geometry && (value & AttributeConsts.SpecialMask) == 0 && !isOutAttr)
{ {
name = $"gl_in[{indexExpr}].{name}"; name = $"gl_in[{indexExpr}].{name}";
} }

View file

@ -31,6 +31,7 @@ namespace Ryujinx.Graphics.Shader.Translation
// Note: Those attributes are used internally by the translator // Note: Those attributes are used internally by the translator
// only, they don't exist on Maxwell. // only, they don't exist on Maxwell.
public const int SpecialMask = 0xff << 24;
public const int FragmentOutputDepth = 0x1000000; public const int FragmentOutputDepth = 0x1000000;
public const int FragmentOutputColorBase = 0x1000010; public const int FragmentOutputColorBase = 0x1000010;
public const int FragmentOutputColorEnd = FragmentOutputColorBase + 8 * 16; public const int FragmentOutputColorEnd = FragmentOutputColorBase + 8 * 16;