Transform shader LDC into constant buffer access if offset is constant (#3672)

* Transform shader LDC into constant buffer access if offset is constant

* Shader cache version bump
This commit is contained in:
gdkchan 2022-09-07 20:25:22 -03:00 committed by GitHub
parent df99257d7f
commit 408bd63b08
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 1 deletions

View file

@ -22,7 +22,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
private const ushort FileFormatVersionMajor = 1; private const ushort FileFormatVersionMajor = 1;
private const ushort FileFormatVersionMinor = 2; private const ushort FileFormatVersionMinor = 2;
private const uint FileFormatVersionPacked = ((uint)FileFormatVersionMajor << 16) | FileFormatVersionMinor; private const uint FileFormatVersionPacked = ((uint)FileFormatVersionMajor << 16) | FileFormatVersionMinor;
private const uint CodeGenVersion = 3525; private const uint CodeGenVersion = 3672;
private const string SharedTocFileName = "shared.toc"; private const string SharedTocFileName = "shared.toc";
private const string SharedDataFileName = "shared.data"; private const string SharedDataFileName = "shared.data";

View file

@ -153,6 +153,10 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations
EvaluateFPUnary(operation, (x) => float.IsNaN(x)); EvaluateFPUnary(operation, (x) => float.IsNaN(x));
break; break;
case Instruction.LoadConstant:
operation.TurnIntoCopy(Cbuf(operation.GetSource(0).Value, operation.GetSource(1).Value));
break;
case Instruction.Maximum: case Instruction.Maximum:
EvaluateBinary(operation, (x, y) => Math.Max(x, y)); EvaluateBinary(operation, (x, y) => Math.Max(x, y));
break; break;