ee1038e542
* Initial support for shader attribute indexing * Support output indexing too, other improvements * Fix order * Address feedback
28 lines
810 B
C#
28 lines
810 B
C#
using Ryujinx.Graphics.Shader.Instructions;
|
|
|
|
namespace Ryujinx.Graphics.Shader.Decoders
|
|
{
|
|
class OpCodeIpa : OpCodeAluReg, IOpCodeAttribute
|
|
{
|
|
public int AttributeOffset { get; }
|
|
public int Count => 1;
|
|
|
|
public bool Idx { get; }
|
|
public bool Indexed => Idx;
|
|
|
|
public InterpolationMode Mode { get; }
|
|
|
|
public new static OpCode Create(InstEmitter emitter, ulong address, long opCode) => new OpCodeIpa(emitter, address, opCode);
|
|
|
|
public OpCodeIpa(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
|
|
{
|
|
AttributeOffset = opCode.Extract(28, 10);
|
|
|
|
Idx = opCode.Extract(38);
|
|
|
|
Saturate = opCode.Extract(51);
|
|
|
|
Mode = (InterpolationMode)opCode.Extract(54, 2);
|
|
}
|
|
}
|
|
} |