Remove output interpolation qualifier (#1070)

This commit is contained in:
gdkchan 2020-04-01 22:24:55 -03:00 committed by GitHub
parent 45c7424f7c
commit 5b5239ab5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 71 deletions

View file

@ -400,9 +400,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
{
for (int attr = 0; attr < MaxAttributes; attr++)
{
string iq = $"{DefineNames.OutQualifierPrefixName}{attr} ";
context.AppendLine($"layout (location = {attr}) {iq}out vec4 {DefaultNames.OAttributePrefix}{attr};");
context.AppendLine($"layout (location = {attr}) out vec4 {DefaultNames.OAttributePrefix}{attr};");
}
foreach (int attr in info.OAttributes.OrderBy(x => x).Where(x => x >= MaxAttributes))

View file

@ -1,7 +0,0 @@
namespace Ryujinx.Graphics.Shader
{
public static class DefineNames
{
public const string OutQualifierPrefixName = "S_OUT_QUALIFIER";
}
}

View file

@ -3,7 +3,7 @@ using System;
namespace Ryujinx.Graphics.Shader
{
[Flags]
public enum InterpolationQualifier
enum InterpolationQualifier
{
None = 0,
@ -17,18 +17,17 @@ namespace Ryujinx.Graphics.Shader
FlagsMask = Centroid | Sample
}
public static class InterpolationQualifierExtensions
static class InterpolationQualifierExtensions
{
public static string ToGlslQualifier(this InterpolationQualifier iq)
{
string output = string.Empty;
switch (iq & ~InterpolationQualifier.FlagsMask)
string output = (iq & ~InterpolationQualifier.FlagsMask) switch
{
case InterpolationQualifier.Flat: output = "flat"; break;
case InterpolationQualifier.NoPerspective: output = "noperspective"; break;
case InterpolationQualifier.Smooth: output = "smooth"; break;
}
InterpolationQualifier.Flat => "flat",
InterpolationQualifier.NoPerspective => "noperspective",
InterpolationQualifier.Smooth => "smooth",
_ => string.Empty
};
if ((iq & InterpolationQualifier.Centroid) != 0)
{

View file

@ -10,25 +10,20 @@ namespace Ryujinx.Graphics.Shader
public ReadOnlyCollection<TextureDescriptor> Textures { get; }
public ReadOnlyCollection<TextureDescriptor> Images { get; }
public ReadOnlyCollection<InterpolationQualifier> InterpolationQualifiers { get; }
public bool UsesInstanceId { get; }
internal ShaderProgramInfo(
BufferDescriptor[] cBuffers,
BufferDescriptor[] sBuffers,
TextureDescriptor[] textures,
TextureDescriptor[] images,
InterpolationQualifier[] interpolationQualifiers,
bool usesInstanceId)
BufferDescriptor[] cBuffers,
BufferDescriptor[] sBuffers,
TextureDescriptor[] textures,
TextureDescriptor[] images,
bool usesInstanceId)
{
CBuffers = Array.AsReadOnly(cBuffers);
SBuffers = Array.AsReadOnly(sBuffers);
Textures = Array.AsReadOnly(textures);
Images = Array.AsReadOnly(images);
InterpolationQualifiers = Array.AsReadOnly(interpolationQualifiers);
UsesInstanceId = usesInstanceId;
}
}

View file

@ -79,7 +79,6 @@ namespace Ryujinx.Graphics.Shader.Translation
program.SBufferDescriptors,
program.TextureDescriptors,
program.ImageDescriptors,
sInfo.InterpolationQualifiers,
sInfo.UsesInstanceId);
string glslCode = program.Code;