mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2025-03-10 17:14:25 +00:00
misc: chore: Fix object creation in Shader project
This commit is contained in:
parent
7f5a356c3d
commit
ccef0b49eb
@ -16,7 +16,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl.Instructions
|
||||
|
||||
bool isArray = (texOp.Type & SamplerType.Array) != 0;
|
||||
|
||||
StringBuilder texCallBuilder = new StringBuilder();
|
||||
StringBuilder texCallBuilder = new();
|
||||
|
||||
if (texOp.Inst == Instruction.ImageAtomic)
|
||||
{
|
||||
|
@ -157,7 +157,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
|
||||
|
||||
bool isArray = (texOp.Type & SamplerType.Array) != 0;
|
||||
|
||||
StringBuilder texCallBuilder = new StringBuilder();
|
||||
StringBuilder texCallBuilder = new();
|
||||
|
||||
int srcIndex = 0;
|
||||
|
||||
@ -194,7 +194,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
|
||||
|
||||
texCallBuilder.Append('(');
|
||||
|
||||
StringBuilder coordsBuilder = new StringBuilder();
|
||||
StringBuilder coordsBuilder = new();
|
||||
|
||||
int coordsCount = texOp.Type.GetDimensions();
|
||||
|
||||
@ -352,7 +352,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
|
||||
bool isArray = (texOp.Type & SamplerType.Array) != 0;
|
||||
bool isShadow = (texOp.Type & SamplerType.Shadow) != 0;
|
||||
|
||||
StringBuilder texCallBuilder = new StringBuilder();
|
||||
StringBuilder texCallBuilder = new();
|
||||
|
||||
bool colorIsVector = isGather || !isShadow;
|
||||
|
||||
@ -589,7 +589,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
|
||||
{
|
||||
AstTextureOperation texOp = (AstTextureOperation)operation;
|
||||
|
||||
StringBuilder texCallBuilder = new StringBuilder();
|
||||
StringBuilder texCallBuilder = new();
|
||||
|
||||
int srcIndex = 0;
|
||||
|
||||
|
@ -176,7 +176,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
|
||||
}
|
||||
|
||||
string funcPrefix = $"{funcKeyword} {returnType} {funcName ?? function.Name}(";
|
||||
string indent = new string(' ', funcPrefix.Length);
|
||||
string indent = new(' ', funcPrefix.Length);
|
||||
|
||||
return $"{funcPrefix}{string.Join($", \n{indent}", args)})";
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
|
||||
public Instruction[] GetMainInterface()
|
||||
{
|
||||
List<Instruction> mainInterface = new List<Instruction>();
|
||||
List<Instruction> mainInterface = new();
|
||||
|
||||
mainInterface.AddRange(Inputs.Values);
|
||||
mainInterface.AddRange(Outputs.Values);
|
||||
|
@ -1327,7 +1327,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
compIdx = Src(AggregateType.S32);
|
||||
}
|
||||
|
||||
List<SpvInstruction> operandsList = new List<SpvInstruction>();
|
||||
List<SpvInstruction> operandsList = new();
|
||||
ImageOperandsMask operandsMask = ImageOperandsMask.MaskNone;
|
||||
|
||||
if (hasLodBias)
|
||||
@ -1754,7 +1754,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
|
||||
storageClass = isOutput ? StorageClass.Output : StorageClass.Input;
|
||||
|
||||
IoDefinition ioDefinition = new IoDefinition(storageKind, ioVariable, location, component);
|
||||
IoDefinition ioDefinition = new(storageKind, ioVariable, location, component);
|
||||
Dictionary<IoDefinition, SpvInstruction> dict = isPerPatch
|
||||
? (isOutput ? context.OutputsPerPatch : context.InputsPerPatch)
|
||||
: (isOutput ? context.Outputs : context.Inputs);
|
||||
@ -1843,7 +1843,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
(_, AggregateType varType) = IoMap.GetSpirvBuiltIn(ioVariable);
|
||||
varType &= AggregateType.ElementTypeMask;
|
||||
|
||||
IoDefinition ioDefinition = new IoDefinition(StorageKind.Input, ioVariable);
|
||||
IoDefinition ioDefinition = new(StorageKind.Input, ioVariable);
|
||||
|
||||
return context.Load(context.GetType(varType), context.Inputs[ioDefinition]);
|
||||
}
|
||||
|
@ -307,7 +307,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
{
|
||||
AstBlockVisitor visitor = new(block);
|
||||
|
||||
Dictionary<AstBlock, (SpvInstruction, SpvInstruction)> loopTargets = new Dictionary<AstBlock, (SpvInstruction, SpvInstruction)>();
|
||||
Dictionary<AstBlock, (SpvInstruction, SpvInstruction)> loopTargets = new();
|
||||
|
||||
context.LoopTargets = loopTargets;
|
||||
|
||||
|
@ -57,7 +57,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||
|
||||
private static IReadOnlyDictionary<int, AttributeEntry> CreateMap()
|
||||
{
|
||||
Dictionary<int, AttributeEntry> map = new Dictionary<int, AttributeEntry>();
|
||||
Dictionary<int, AttributeEntry> map = new();
|
||||
|
||||
Add(map, 0x060, AggregateType.S32, IoVariable.PrimitiveId, StagesMask.TessellationGeometryFragment, StagesMask.Geometry);
|
||||
Add(map, 0x064, AggregateType.S32, IoVariable.Layer, StagesMask.Fragment, StagesMask.VertexTessellationGeometry);
|
||||
@ -84,7 +84,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
|
||||
|
||||
private static IReadOnlyDictionary<int, AttributeEntry> CreatePerPatchMap()
|
||||
{
|
||||
Dictionary<int, AttributeEntry> map = new Dictionary<int, AttributeEntry>();
|
||||
Dictionary<int, AttributeEntry> map = new();
|
||||
|
||||
Add(map, 0x000, AggregateType.Vector4 | AggregateType.FP32, IoVariable.TessellationLevelOuter, StagesMask.TessellationEvaluation, StagesMask.TessellationControl);
|
||||
Add(map, 0x010, AggregateType.Vector2 | AggregateType.FP32, IoVariable.TessellationLevelInner, StagesMask.TessellationEvaluation, StagesMask.TessellationControl);
|
||||
|
@ -103,7 +103,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
size = DefaultLocalMemorySize;
|
||||
}
|
||||
|
||||
MemoryDefinition lmem = new MemoryDefinition("local_memory", AggregateType.Array | AggregateType.U32, BitUtils.DivRoundUp(size, sizeof(uint)));
|
||||
MemoryDefinition lmem = new("local_memory", AggregateType.Array | AggregateType.U32, BitUtils.DivRoundUp(size, sizeof(uint)));
|
||||
|
||||
LocalMemoryId = Properties.AddLocalMemory(lmem);
|
||||
}
|
||||
@ -122,7 +122,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
size = DefaultSharedMemorySize;
|
||||
}
|
||||
|
||||
MemoryDefinition smem = new MemoryDefinition("shared_memory", AggregateType.Array | AggregateType.U32, BitUtils.DivRoundUp(size, sizeof(uint)));
|
||||
MemoryDefinition smem = new("shared_memory", AggregateType.Array | AggregateType.U32, BitUtils.DivRoundUp(size, sizeof(uint)));
|
||||
|
||||
SharedMemoryId = Properties.AddSharedMemory(smem);
|
||||
}
|
||||
@ -315,8 +315,8 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
// For array textures, we also want to use type as key,
|
||||
// since we may have texture handles stores in the same buffer, but for textures with different types.
|
||||
SamplerType keyType = arrayLength > 1 ? type : SamplerType.None;
|
||||
TextureInfo info = new TextureInfo(cbufSlot, handle, arrayLength, separate, keyType, format);
|
||||
TextureMeta meta = new TextureMeta()
|
||||
TextureInfo info = new(cbufSlot, handle, arrayLength, separate, keyType, format);
|
||||
TextureMeta meta = new()
|
||||
{
|
||||
AccurateType = accurateType,
|
||||
Type = type,
|
||||
@ -383,7 +383,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
nameSuffix = cbufSlot < 0 ? $"{prefix}_tcb_{handle:X}" : $"{prefix}_cb{cbufSlot}_{handle:X}";
|
||||
}
|
||||
|
||||
TextureDefinition definition = new TextureDefinition(
|
||||
TextureDefinition definition = new(
|
||||
setIndex,
|
||||
binding,
|
||||
arrayLength,
|
||||
|
@ -192,7 +192,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
component = subIndex;
|
||||
}
|
||||
|
||||
TransformFeedbackVariable transformFeedbackVariable = new TransformFeedbackVariable(ioVariable, location, component);
|
||||
TransformFeedbackVariable transformFeedbackVariable = new(ioVariable, location, component);
|
||||
_transformFeedbackDefinitions.TryAdd(transformFeedbackVariable, transformFeedbackOutputs[wordOffset]);
|
||||
}
|
||||
}
|
||||
@ -219,7 +219,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
return false;
|
||||
}
|
||||
|
||||
TransformFeedbackVariable transformFeedbackVariable = new TransformFeedbackVariable(ioVariable, location, component);
|
||||
TransformFeedbackVariable transformFeedbackVariable = new(ioVariable, location, component);
|
||||
return _transformFeedbackDefinitions.TryGetValue(transformFeedbackVariable, out transformFeedbackOutput);
|
||||
}
|
||||
|
||||
|
@ -342,7 +342,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
_ => 1
|
||||
};
|
||||
|
||||
ShaderProgramInfo info = new ShaderProgramInfo(
|
||||
ShaderProgramInfo info = new(
|
||||
resourceManager.GetConstantBufferDescriptors(),
|
||||
resourceManager.GetStorageBufferDescriptors(),
|
||||
resourceManager.GetTextureDescriptors(),
|
||||
@ -358,7 +358,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
clipDistancesWritten,
|
||||
originalDefinitions.OmapTargets);
|
||||
|
||||
HostCapabilities hostCapabilities = new HostCapabilities(
|
||||
HostCapabilities hostCapabilities = new(
|
||||
GpuAccessor.QueryHostReducedPrecision(),
|
||||
GpuAccessor.QueryHostSupportsFragmentShaderInterlock(),
|
||||
GpuAccessor.QueryHostSupportsFragmentShaderOrderingIntel(),
|
||||
@ -369,7 +369,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
GpuAccessor.QueryHostSupportsTextureShadowLod(),
|
||||
GpuAccessor.QueryHostSupportsViewportMask());
|
||||
|
||||
CodeGenParameters parameters = new CodeGenParameters(attributeUsage, definitions, resourceManager.Properties, hostCapabilities, GpuAccessor, Options.TargetApi);
|
||||
CodeGenParameters parameters = new(attributeUsage, definitions, resourceManager.Properties, hostCapabilities, GpuAccessor, Options.TargetApi);
|
||||
|
||||
return Options.TargetLanguage switch
|
||||
{
|
||||
@ -388,7 +388,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
{
|
||||
StructureType tfeDataStruct = new(new StructureField[]
|
||||
{
|
||||
new StructureField(AggregateType.Array | AggregateType.U32, "data", 0)
|
||||
new(AggregateType.Array | AggregateType.U32, "data", 0)
|
||||
});
|
||||
|
||||
for (int i = 0; i < ResourceReservations.TfeBuffersCount; i++)
|
||||
@ -407,7 +407,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
|
||||
StructureType vertexOutputStruct = new(new StructureField[]
|
||||
{
|
||||
new StructureField(AggregateType.Array | AggregateType.FP32, "data", 0)
|
||||
new(AggregateType.Array | AggregateType.FP32, "data", 0)
|
||||
});
|
||||
|
||||
int vertexOutputSbBinding = resourceManager.Reservations.VertexOutputStorageBufferBinding;
|
||||
@ -444,7 +444,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
|
||||
StructureType geometryIbOutputStruct = new(new StructureField[]
|
||||
{
|
||||
new StructureField(AggregateType.Array | AggregateType.U32, "data", 0)
|
||||
new(AggregateType.Array | AggregateType.U32, "data", 0)
|
||||
});
|
||||
|
||||
int geometryIbOutputSbBinding = resourceManager.Reservations.GeometryIndexOutputStorageBufferBinding;
|
||||
@ -494,8 +494,8 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
|
||||
public (ShaderProgram, ShaderProgramInfo) GenerateVertexPassthroughForCompute()
|
||||
{
|
||||
AttributeUsage attributeUsage = new AttributeUsage(GpuAccessor);
|
||||
ResourceManager resourceManager = new ResourceManager(ShaderStage.Vertex, GpuAccessor);
|
||||
AttributeUsage attributeUsage = new(GpuAccessor);
|
||||
ResourceManager resourceManager = new(ShaderStage.Vertex, GpuAccessor);
|
||||
|
||||
ResourceReservations reservations = GetResourceReservations();
|
||||
|
||||
@ -509,14 +509,14 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
|
||||
StructureType vertexInputStruct = new(new StructureField[]
|
||||
{
|
||||
new StructureField(AggregateType.Array | AggregateType.FP32, "data", 0)
|
||||
new(AggregateType.Array | AggregateType.FP32, "data", 0)
|
||||
});
|
||||
|
||||
int vertexDataSbBinding = reservations.VertexOutputStorageBufferBinding;
|
||||
BufferDefinition vertexOutputBuffer = new(BufferLayout.Std430, 1, vertexDataSbBinding, "vb_input", vertexInputStruct);
|
||||
resourceManager.AddVertexAsComputeStorageBuffer(vertexOutputBuffer);
|
||||
|
||||
EmitterContext context = new EmitterContext();
|
||||
EmitterContext context = new();
|
||||
|
||||
Operand vertexIndex = Options.TargetApi == TargetApi.OpenGL
|
||||
? context.Load(StorageKind.Input, IoVariable.VertexId)
|
||||
@ -563,11 +563,11 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
|
||||
Operation[] operations = context.GetOperations();
|
||||
ControlFlowGraph cfg = ControlFlowGraph.Create(operations);
|
||||
Function function = new Function(cfg.Blocks, "main", false, 0, 0);
|
||||
Function function = new(cfg.Blocks, "main", false, 0, 0);
|
||||
|
||||
TransformFeedbackOutput[] transformFeedbackOutputs = GetTransformFeedbackOutputs(GpuAccessor, out ulong transformFeedbackVecMap);
|
||||
|
||||
ShaderDefinitions definitions = new ShaderDefinitions(ShaderStage.Vertex, transformFeedbackVecMap, transformFeedbackOutputs)
|
||||
ShaderDefinitions definitions = new(ShaderStage.Vertex, transformFeedbackVecMap, transformFeedbackOutputs)
|
||||
{
|
||||
LastInVertexPipeline = true
|
||||
};
|
||||
@ -612,10 +612,10 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
break;
|
||||
}
|
||||
|
||||
AttributeUsage attributeUsage = new AttributeUsage(GpuAccessor);
|
||||
ResourceManager resourceManager = new ResourceManager(ShaderStage.Geometry, GpuAccessor);
|
||||
AttributeUsage attributeUsage = new(GpuAccessor);
|
||||
ResourceManager resourceManager = new(ShaderStage.Geometry, GpuAccessor);
|
||||
|
||||
EmitterContext context = new EmitterContext();
|
||||
EmitterContext context = new();
|
||||
|
||||
for (int v = 0; v < maxOutputVertices; v++)
|
||||
{
|
||||
@ -658,9 +658,9 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
|
||||
Operation[] operations = context.GetOperations();
|
||||
ControlFlowGraph cfg = ControlFlowGraph.Create(operations);
|
||||
Function function = new Function(cfg.Blocks, "main", false, 0, 0);
|
||||
Function function = new(cfg.Blocks, "main", false, 0, 0);
|
||||
|
||||
ShaderDefinitions definitions = new ShaderDefinitions(
|
||||
ShaderDefinitions definitions = new(
|
||||
ShaderStage.Geometry,
|
||||
GpuAccessor.QueryGraphicsState(),
|
||||
false,
|
||||
|
Loading…
x
Reference in New Issue
Block a user