aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2023-01-23 19:20:40 -0300
committerGitHub <noreply@github.com>2023-01-23 19:20:40 -0300
commit2fd819613ffcede43562b333602d17fa79c9751d (patch)
tree4c00f18a9ebfd356a6af8359cd86e9e5fec1509b
parentad6ff6ce99619bb320cc7517768bca603f11a75c (diff)
SPIR-V: Change BitfieldExtract and BitfieldInsert for SPIRV-Cross (#4336)1.1.593
* SPIR-V: Change BitfieldExtract and BitfieldInsert types to make Metal MSL compiler happy * Shader cache version bump
-rw-r--r--Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs2
-rw-r--r--Ryujinx.Graphics.Shader/CodeGen/Spirv/Instructions.cs44
2 files changed, 23 insertions, 23 deletions
diff --git a/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs b/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs
index 9f436502..dcd0eb70 100644
--- a/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs
+++ b/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs
@@ -22,7 +22,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
private const ushort FileFormatVersionMajor = 1;
private const ushort FileFormatVersionMinor = 2;
private const uint FileFormatVersionPacked = ((uint)FileFormatVersionMajor << 16) | FileFormatVersionMinor;
- private const uint CodeGenVersion = 4318;
+ private const uint CodeGenVersion = 4336;
private const string SharedTocFileName = "shared.toc";
private const string SharedDataFileName = "shared.data";
diff --git a/Ryujinx.Graphics.Shader/CodeGen/Spirv/Instructions.cs b/Ryujinx.Graphics.Shader/CodeGen/Spirv/Instructions.cs
index 61abf334..14d6ab52 100644
--- a/Ryujinx.Graphics.Shader/CodeGen/Spirv/Instructions.cs
+++ b/Ryujinx.Graphics.Shader/CodeGen/Spirv/Instructions.cs
@@ -261,17 +261,17 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
private static OperationResult GenerateBitfieldExtractS32(CodeGenContext context, AstOperation operation)
{
- return GenerateTernaryS32(context, operation, context.Delegates.BitFieldSExtract);
+ return GenerateBitfieldExtractS32(context, operation, context.Delegates.BitFieldSExtract);
}
private static OperationResult GenerateBitfieldExtractU32(CodeGenContext context, AstOperation operation)
{
- return GenerateTernaryS32(context, operation, context.Delegates.BitFieldUExtract);
+ return GenerateTernaryU32(context, operation, context.Delegates.BitFieldUExtract);
}
private static OperationResult GenerateBitfieldInsert(CodeGenContext context, AstOperation operation)
{
- return GenerateQuaternaryS32(context, operation, context.Delegates.BitFieldInsert);
+ return GenerateBitfieldInsert(context, operation, context.Delegates.BitFieldInsert);
}
private static OperationResult GenerateBitfieldReverse(CodeGenContext context, AstOperation operation)
@@ -2290,39 +2290,39 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
}
}
- private static OperationResult GenerateTernaryS32(
+ private static OperationResult GenerateTernaryU32(
CodeGenContext context,
AstOperation operation,
- Func<SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction> emitS)
+ Func<SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction> emitU)
{
var src1 = operation.GetSource(0);
var src2 = operation.GetSource(1);
var src3 = operation.GetSource(2);
- return new OperationResult(AggregateType.S32, emitS(
- context.TypeS32(),
- context.GetS32(src1),
- context.GetS32(src2),
- context.GetS32(src3)));
+ return new OperationResult(AggregateType.U32, emitU(
+ context.TypeU32(),
+ context.GetU32(src1),
+ context.GetU32(src2),
+ context.GetU32(src3)));
}
- private static OperationResult GenerateTernaryU32(
+ private static OperationResult GenerateBitfieldExtractS32(
CodeGenContext context,
AstOperation operation,
- Func<SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction> emitU)
+ Func<SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction> emitS)
{
var src1 = operation.GetSource(0);
var src2 = operation.GetSource(1);
var src3 = operation.GetSource(2);
- return new OperationResult(AggregateType.U32, emitU(
- context.TypeU32(),
- context.GetU32(src1),
+ return new OperationResult(AggregateType.S32, emitS(
+ context.TypeS32(),
+ context.GetS32(src1),
context.GetU32(src2),
context.GetU32(src3)));
}
- private static OperationResult GenerateQuaternaryS32(
+ private static OperationResult GenerateBitfieldInsert(
CodeGenContext context,
AstOperation operation,
Func<SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction, SpvInstruction> emitS)
@@ -2332,12 +2332,12 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
var src3 = operation.GetSource(2);
var src4 = operation.GetSource(3);
- return new OperationResult(AggregateType.S32, emitS(
- context.TypeS32(),
- context.GetS32(src1),
- context.GetS32(src2),
- context.GetS32(src3),
- context.GetS32(src4)));
+ return new OperationResult(AggregateType.U32, emitS(
+ context.TypeU32(),
+ context.GetU32(src1),
+ context.GetU32(src2),
+ context.GetU32(src3),
+ context.GetU32(src4)));
}
}
}