aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/Decoders/OpCodeSuatom.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2021-10-12 17:35:31 -0300
committerGitHub <noreply@github.com>2021-10-12 22:35:31 +0200
commita7109c767bdc014327b574012794156c92174495 (patch)
treed7d7db6eaa63d4e3e0396a3182d0267b6ad31dd7 /Ryujinx.Graphics.Shader/Decoders/OpCodeSuatom.cs
parent0510fde25ae66ec0b55091746a52931248d75b89 (diff)
Rewrite shader decoding stage (#2698)
* Rewrite shader decoding stage * Fix P2R constant buffer encoding * Fix PSET/PSETP * PR feedback * Log unimplemented shader instructions * Implement NOP * Remove using * PR feedback
Diffstat (limited to 'Ryujinx.Graphics.Shader/Decoders/OpCodeSuatom.cs')
-rw-r--r--Ryujinx.Graphics.Shader/Decoders/OpCodeSuatom.cs46
1 files changed, 0 insertions, 46 deletions
diff --git a/Ryujinx.Graphics.Shader/Decoders/OpCodeSuatom.cs b/Ryujinx.Graphics.Shader/Decoders/OpCodeSuatom.cs
deleted file mode 100644
index 7c807b36..00000000
--- a/Ryujinx.Graphics.Shader/Decoders/OpCodeSuatom.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using Ryujinx.Graphics.Shader.Instructions;
-
-namespace Ryujinx.Graphics.Shader.Decoders
-{
- class OpCodeSuatom : OpCodeTextureBase
- {
- public Register Rd { get; }
- public Register Ra { get; }
- public Register Rb { get; }
- public Register Rc { get; }
-
- public ReductionType Type { get; }
- public AtomicOp AtomicOp { get; }
- public ImageDimensions Dimensions { get; }
- public ClampMode ClampMode { get; }
-
- public bool ByteAddress { get; }
- public bool UseType { get; }
- public bool IsBindless { get; }
-
- public bool CompareAndSwap { get; }
-
- public new static OpCode Create(InstEmitter emitter, ulong address, long opCode) => new OpCodeSuatom(emitter, address, opCode);
-
- public OpCodeSuatom(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
- {
- Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr);
- Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr);
- Rb = new Register(opCode.Extract(20, 8), RegisterType.Gpr);
- Rc = new Register(opCode.Extract(39, 8), RegisterType.Gpr);
-
- bool supportsBindless = opCode.Extract(54);
-
- Type = (ReductionType)opCode.Extract(supportsBindless ? 36 : 51, 3);
- ByteAddress = opCode.Extract(28);
- AtomicOp = (AtomicOp)opCode.Extract(29, 4); // Only useful if CAS is not true.
- Dimensions = (ImageDimensions)opCode.Extract(33, 3);
- ClampMode = (ClampMode)opCode.Extract(49, 2);
-
- IsBindless = supportsBindless && !opCode.Extract(51);
- UseType = !supportsBindless || opCode.Extract(52);
-
- CompareAndSwap = opCode.Extract(55);
- }
- }
-}