| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using Ryujinx.Graphics.Shader.Instructions;
- namespace Ryujinx.Graphics.Shader.Decoders
- {
- enum ClampMode
- {
- Ignore = 0,
- Trap = 2
- }
- class OpCodeSured : OpCodeTextureBase
- {
- 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 UseType { get; }
- public bool IsBindless { get; }
- public bool ByteAddress { get; }
- public new static OpCode Create(InstEmitter emitter, ulong address, long opCode) => new OpCodeSured(emitter, address, opCode);
- public OpCodeSured(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
- {
- Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr);
- Rb = new Register(opCode.Extract(0, 8), RegisterType.Gpr);
- Rc = new Register(opCode.Extract(39, 8), RegisterType.Gpr);
- Type = (ReductionType)opCode.Extract(20, 3);
- ByteAddress = opCode.Extract(23);
- AtomicOp = (AtomicOp)opCode.Extract(24, 3);
- Dimensions = (ImageDimensions)opCode.Extract(33, 3);
- ClampMode = (ClampMode)opCode.Extract(49, 2);
- IsBindless = !opCode.Extract(51);
- UseType = opCode.Extract(52);
- }
- }
- }
|