diff options
Diffstat (limited to 'Ryujinx.Graphics.Shader/StructuredIr')
| -rw-r--r-- | Ryujinx.Graphics.Shader/StructuredIr/AstTextureOperation.cs | 7 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Shader/StructuredIr/AstTextureOperation.cs b/Ryujinx.Graphics.Shader/StructuredIr/AstTextureOperation.cs index 5473978e..a3fa3e3a 100644 --- a/Ryujinx.Graphics.Shader/StructuredIr/AstTextureOperation.cs +++ b/Ryujinx.Graphics.Shader/StructuredIr/AstTextureOperation.cs @@ -4,8 +4,9 @@ namespace Ryujinx.Graphics.Shader.StructuredIr { class AstTextureOperation : AstOperation { - public SamplerType Type { get; } - public TextureFlags Flags { get; } + public SamplerType Type { get; } + public TextureFormat Format { get; } + public TextureFlags Flags { get; } public int Handle { get; } public int ArraySize { get; } @@ -13,6 +14,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr public AstTextureOperation( Instruction inst, SamplerType type, + TextureFormat format, TextureFlags flags, int handle, int arraySize, @@ -20,6 +22,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr params IAstNode[] sources) : base(inst, index, sources) { Type = type; + Format = format; Flags = flags; Handle = handle; ArraySize = arraySize; diff --git a/Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs b/Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs index 4758b08f..f1dd08f2 100644 --- a/Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs +++ b/Ryujinx.Graphics.Shader/StructuredIr/StructuredProgram.cs @@ -57,6 +57,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr return new AstTextureOperation( inst, texOp.Type, + texOp.Format, texOp.Flags, texOp.Handle, 4, // TODO: Non-hardcoded array size. @@ -118,6 +119,11 @@ namespace Ryujinx.Graphics.Shader.StructuredIr if (operation is TextureOperation texOp) { + if (texOp.Inst == Instruction.ImageLoad || texOp.Inst == Instruction.ImageStore) + { + dest.VarType = texOp.Format.GetComponentType(); + } + AstTextureOperation astTexOp = GetAstTextureOperation(texOp); if (texOp.Inst == Instruction.ImageLoad) |
