From 9dfe81770a8337a7a469eb3bac0ae9599cc0f61c Mon Sep 17 00:00:00 2001 From: gdkchan Date: Thu, 29 Dec 2022 12:09:34 -0300 Subject: Use vector outputs for texture operations (#3939) * Change AggregateType to include vector type counts * Replace VariableType uses with AggregateType and delete VariableType * Support new local vector types on SPIR-V and GLSL * Start using vector outputs for texture operations * Use vectors on more texture operations * Use vector output for ImageLoad operations * Replace all uses of single destination texture constructors with multi destination ones * Update textureGatherOffsets replacement to split vector operations * Shader cache version bump Co-authored-by: Ac_K --- .../StructuredIr/StructuredFunction.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'Ryujinx.Graphics.Shader/StructuredIr/StructuredFunction.cs') diff --git a/Ryujinx.Graphics.Shader/StructuredIr/StructuredFunction.cs b/Ryujinx.Graphics.Shader/StructuredIr/StructuredFunction.cs index 3723f259..61c4fed7 100644 --- a/Ryujinx.Graphics.Shader/StructuredIr/StructuredFunction.cs +++ b/Ryujinx.Graphics.Shader/StructuredIr/StructuredFunction.cs @@ -1,3 +1,4 @@ +using Ryujinx.Graphics.Shader.Translation; using System.Collections.Generic; namespace Ryujinx.Graphics.Shader.StructuredIr @@ -8,19 +9,19 @@ namespace Ryujinx.Graphics.Shader.StructuredIr public string Name { get; } - public VariableType ReturnType { get; } + public AggregateType ReturnType { get; } - public VariableType[] InArguments { get; } - public VariableType[] OutArguments { get; } + public AggregateType[] InArguments { get; } + public AggregateType[] OutArguments { get; } public HashSet Locals { get; } public StructuredFunction( AstBlock mainBlock, string name, - VariableType returnType, - VariableType[] inArguments, - VariableType[] outArguments) + AggregateType returnType, + AggregateType[] inArguments, + AggregateType[] outArguments) { MainBlock = mainBlock; Name = name; @@ -31,7 +32,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr Locals = new HashSet(); } - public VariableType GetArgumentType(int index) + public AggregateType GetArgumentType(int index) { return index >= InArguments.Length ? OutArguments[index - InArguments.Length] -- cgit v1.2.3