mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-06-04 19:39:15 +00:00
feature: .NET 10 (ryubing/ryujinx!214)
See merge request ryubing/ryujinx!214
This commit is contained in:
@@ -83,7 +83,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
||||
{
|
||||
if (context.Definitions.Stage == ShaderStage.Geometry)
|
||||
{
|
||||
string inPrimitive = context.Definitions.InputTopology.ToGlslString();
|
||||
string inPrimitive = context.Definitions.InputTopology.GlslString;
|
||||
|
||||
context.AppendLine($"layout (invocations = {context.Definitions.ThreadsPerInputPrimitive}, {inPrimitive}) in;");
|
||||
|
||||
@@ -98,7 +98,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
||||
}
|
||||
else
|
||||
{
|
||||
string outPrimitive = context.Definitions.OutputTopology.ToGlslString();
|
||||
string outPrimitive = context.Definitions.OutputTopology.GlslString;
|
||||
int maxOutputVertices = context.Definitions.MaxOutputVertices;
|
||||
|
||||
context.AppendLine($"layout ({outPrimitive}, max_vertices = {maxOutputVertices}) out;");
|
||||
@@ -123,8 +123,8 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
||||
tessCw = !tessCw;
|
||||
}
|
||||
|
||||
string patchType = context.Definitions.TessPatchType.ToGlsl();
|
||||
string spacing = context.Definitions.TessSpacing.ToGlsl();
|
||||
string patchType = context.Definitions.TessPatchType.Glsl;
|
||||
string spacing = context.Definitions.TessSpacing.Glsl;
|
||||
string windingOrder = tessCw ? "cw" : "ccw";
|
||||
|
||||
context.AppendLine($"layout ({patchType}, {spacing}, {windingOrder}) in;");
|
||||
@@ -351,7 +351,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
||||
arrayDecl = "[]";
|
||||
}
|
||||
|
||||
string samplerTypeName = definition.Separate ? definition.Type.ToGlslTextureType() : definition.Type.ToGlslSamplerType();
|
||||
string samplerTypeName = definition.Separate ? definition.Type.GlslTextureTypeName : definition.Type.GlslSamplerTypeName;
|
||||
|
||||
string layout = string.Empty;
|
||||
|
||||
@@ -379,7 +379,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
||||
arrayDecl = "[]";
|
||||
}
|
||||
|
||||
string imageTypeName = definition.Type.ToGlslImageType(definition.Format.GetComponentType());
|
||||
string imageTypeName = definition.Type.GetGlslImageTypeName(definition.Format.GetComponentType());
|
||||
|
||||
if (definition.Flags.HasFlag(TextureUsageFlags.ImageCoherent))
|
||||
{
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl.Instructions
|
||||
texCallBuilder.Append('(');
|
||||
texCallBuilder.Append(imageName);
|
||||
|
||||
int coordsCount = texOp.Type.GetDimensions();
|
||||
int coordsCount = texOp.Type.Dimensions;
|
||||
|
||||
int pCount = coordsCount + (isArray ? 1 : 0);
|
||||
|
||||
@@ -162,7 +162,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl.Instructions
|
||||
{
|
||||
AstTextureOperation texOp = (AstTextureOperation)operation;
|
||||
|
||||
int coordsCount = texOp.Type.GetDimensions();
|
||||
int coordsCount = texOp.Type.Dimensions;
|
||||
int coordsIndex = 0;
|
||||
|
||||
string samplerName = GetSamplerName(context, texOp, ref coordsIndex);
|
||||
@@ -264,7 +264,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl.Instructions
|
||||
|
||||
texCall += "(" + samplerName;
|
||||
|
||||
int coordsCount = texOp.Type.GetDimensions();
|
||||
int coordsCount = texOp.Type.Dimensions;
|
||||
|
||||
int pCount = coordsCount;
|
||||
|
||||
@@ -658,7 +658,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl.Instructions
|
||||
samplerName = $"{samplerName}[{GetSourceExpr(context, texOp.GetSource(srcIndex++), AggregateType.S32)}]";
|
||||
}
|
||||
|
||||
name = $"{texOp.Type.ToGlslSamplerType()}({name}, {samplerName})";
|
||||
name = $"{texOp.Type.GlslSamplerTypeName}({name}, {samplerName})";
|
||||
}
|
||||
|
||||
return name;
|
||||
|
||||
@@ -385,12 +385,12 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
|
||||
private static void DeclarePerVertexBlock(CodeGenContext context)
|
||||
{
|
||||
if (context.Definitions.Stage.IsVtg())
|
||||
if (context.Definitions.Stage.IsVtg)
|
||||
{
|
||||
if (context.Definitions.Stage != ShaderStage.Vertex)
|
||||
{
|
||||
SpvInstruction perVertexInputStructType = CreatePerVertexStructType(context);
|
||||
int arraySize = context.Definitions.Stage == ShaderStage.Geometry ? context.Definitions.InputTopology.ToInputVertices() : 32;
|
||||
int arraySize = context.Definitions.Stage == ShaderStage.Geometry ? context.Definitions.InputTopology.InputVertexCount : 32;
|
||||
SpvInstruction perVertexInputArrayType = context.TypeArray(perVertexInputStructType, context.Constant(context.TypeU32(), arraySize));
|
||||
SpvInstruction perVertexInputPointerType = context.TypePointer(StorageClass.Input, perVertexInputArrayType);
|
||||
SpvInstruction perVertexInputVariable = context.Variable(perVertexInputPointerType, StorageClass.Input);
|
||||
@@ -537,7 +537,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
|
||||
if (!isPerPatch && IoMap.IsPerVertex(ioVariable, context.Definitions.Stage, isOutput))
|
||||
{
|
||||
int arraySize = context.Definitions.Stage == ShaderStage.Geometry ? context.Definitions.InputTopology.ToInputVertices() : 32;
|
||||
int arraySize = context.Definitions.Stage == ShaderStage.Geometry ? context.Definitions.InputTopology.InputVertexCount : 32;
|
||||
spvType = context.TypeArray(spvType, context.Constant(context.TypeU32(), arraySize));
|
||||
|
||||
if (context.Definitions.GpPassthrough && context.HostCapabilities.SupportsGeometryShaderPassthrough)
|
||||
|
||||
@@ -615,7 +615,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
image = context.AccessChain(imagePointerType, image, textureIndex);
|
||||
}
|
||||
|
||||
int coordsCount = texOp.Type.GetDimensions();
|
||||
int coordsCount = texOp.Type.Dimensions;
|
||||
|
||||
int pCount = coordsCount + (isArray ? 1 : 0);
|
||||
|
||||
@@ -693,7 +693,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
|
||||
image = context.Load(declaration.ImageType, image);
|
||||
|
||||
int coordsCount = texOp.Type.GetDimensions();
|
||||
int coordsCount = texOp.Type.Dimensions;
|
||||
|
||||
int pCount = coordsCount + (isArray ? 1 : 0);
|
||||
|
||||
@@ -750,7 +750,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
|
||||
image = context.Load(declaration.ImageType, image);
|
||||
|
||||
int coordsCount = texOp.Type.GetDimensions();
|
||||
int coordsCount = texOp.Type.Dimensions;
|
||||
|
||||
int pCount = coordsCount + (isArray ? 1 : 0);
|
||||
|
||||
@@ -840,7 +840,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
SamplerDeclaration declaration = context.Samplers[texOp.GetTextureSetAndBinding()];
|
||||
SpvInstruction image = GenerateSampledImageLoad(context, texOp, declaration, ref srcIndex);
|
||||
|
||||
int pCount = texOp.Type.GetDimensions();
|
||||
int pCount = texOp.Type.Dimensions;
|
||||
|
||||
SpvInstruction pCoords;
|
||||
|
||||
@@ -1164,7 +1164,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
SamplerDeclaration declaration = context.Samplers[texOp.GetTextureSetAndBinding()];
|
||||
SpvInstruction image = GenerateSampledImageLoad(context, texOp, declaration, ref srcIndex);
|
||||
|
||||
int coordsCount = texOp.Type.GetDimensions();
|
||||
int coordsCount = texOp.Type.Dimensions;
|
||||
|
||||
int pCount = coordsCount;
|
||||
|
||||
@@ -1463,7 +1463,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
SamplerType type = context.SamplersTypes[texOp.GetTextureSetAndBinding()];
|
||||
bool hasLod = !type.HasFlag(SamplerType.Multisample) && type != SamplerType.TextureBuffer;
|
||||
|
||||
int dimensions = (type & SamplerType.Mask) == SamplerType.TextureCube ? 2 : type.GetDimensions();
|
||||
int dimensions = (type & SamplerType.Mask) == SamplerType.TextureCube ? 2 : type.Dimensions;
|
||||
|
||||
if (type.HasFlag(SamplerType.Array))
|
||||
{
|
||||
@@ -1486,7 +1486,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
|
||||
if (dimensions != 1)
|
||||
{
|
||||
result = context.CompositeExtract(context.TypeS32(), result, (SpvLiteralInteger)texOp.Index);
|
||||
result = context.CompositeExtract(context.TypeS32(), result, texOp.Index);
|
||||
}
|
||||
|
||||
return new OperationResult(AggregateType.S32, result);
|
||||
|
||||
Reference in New Issue
Block a user