aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2023-08-29 21:10:34 -0300
committerGitHub <noreply@github.com>2023-08-29 21:10:34 -0300
commitf09bba82b9366e5912b639a610ae89cbb1cf352c (patch)
tree4811ffa52206eed7cf8aa200c64deb7410e5c56b /src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
parent93d78f9ac4a37a50f0cc2e57addd330d072af742 (diff)
Geometry shader emulation for macOS (#5551)
* Implement vertex and geometry shader conversion to compute * Call InitializeReservedCounts for compute too * PR feedback * Set clip distance mask for geometry and tessellation shaders too * Transform feedback emulation only for vertex
Diffstat (limited to 'src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs')
-rw-r--r--src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs b/src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
index 607ff431..500de71f 100644
--- a/src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
+++ b/src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Declarations.cs
@@ -100,10 +100,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
else
{
string outPrimitive = context.Definitions.OutputTopology.ToGlslString();
-
- int maxOutputVertices = context.Definitions.GpPassthrough
- ? context.Definitions.InputTopology.ToInputVertices()
- : context.Definitions.MaxOutputVertices;
+ int maxOutputVertices = context.Definitions.MaxOutputVertices;
context.AppendLine($"layout ({outPrimitive}, max_vertices = {maxOutputVertices}) out;");
}
@@ -320,15 +317,22 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
{
string typeName = GetVarTypeName(context, memory.Type & ~AggregateType.Array);
- if (memory.ArrayLength > 0)
+ if (memory.Type.HasFlag(AggregateType.Array))
{
- string arraySize = memory.ArrayLength.ToString(CultureInfo.InvariantCulture);
+ if (memory.ArrayLength > 0)
+ {
+ string arraySize = memory.ArrayLength.ToString(CultureInfo.InvariantCulture);
- context.AppendLine($"{prefix}{typeName} {memory.Name}[{arraySize}];");
+ context.AppendLine($"{prefix}{typeName} {memory.Name}[{arraySize}];");
+ }
+ else
+ {
+ context.AppendLine($"{prefix}{typeName} {memory.Name}[];");
+ }
}
else
{
- context.AppendLine($"{prefix}{typeName} {memory.Name}[];");
+ context.AppendLine($"{prefix}{typeName} {memory.Name};");
}
}
}