|
|
@ -88,6 +88,7 @@ enum class OperationCode { |
|
|
IBitwiseXor, /// (MetaArithmetic, int a, int b) -> int |
|
|
IBitwiseXor, /// (MetaArithmetic, int a, int b) -> int |
|
|
IBitwiseNot, /// (MetaArithmetic, int a) -> int |
|
|
IBitwiseNot, /// (MetaArithmetic, int a) -> int |
|
|
IBitfieldInsert, /// (MetaArithmetic, int base, int insert, int offset, int bits) -> int |
|
|
IBitfieldInsert, /// (MetaArithmetic, int base, int insert, int offset, int bits) -> int |
|
|
|
|
|
IBitfieldExtract, /// (MetaArithmetic, int value, int offset, int offset) -> int |
|
|
IBitCount, /// (MetaArithmetic, int) -> int |
|
|
IBitCount, /// (MetaArithmetic, int) -> int |
|
|
|
|
|
|
|
|
UAdd, /// (MetaArithmetic, uint a, uint b) -> uint |
|
|
UAdd, /// (MetaArithmetic, uint a, uint b) -> uint |
|
|
@ -104,8 +105,9 @@ enum class OperationCode { |
|
|
UBitwiseOr, /// (MetaArithmetic, uint a, uint b) -> uint |
|
|
UBitwiseOr, /// (MetaArithmetic, uint a, uint b) -> uint |
|
|
UBitwiseXor, /// (MetaArithmetic, uint a, uint b) -> uint |
|
|
UBitwiseXor, /// (MetaArithmetic, uint a, uint b) -> uint |
|
|
UBitwiseNot, /// (MetaArithmetic, uint a) -> uint |
|
|
UBitwiseNot, /// (MetaArithmetic, uint a) -> uint |
|
|
UBitfieldInsert, /// (MetaArithmetic, uint base, uint insert, int offset, int bits) -> uint |
|
|
|
|
|
UBitCount, /// (MetaArithmetic, uint) -> uint |
|
|
|
|
|
|
|
|
UBitfieldInsert, /// (MetaArithmetic, uint base, uint insert, int offset, int bits) -> uint |
|
|
|
|
|
UBitfieldExtract, /// (MetaArithmetic, uint value, int offset, int offset) -> uint |
|
|
|
|
|
UBitCount, /// (MetaArithmetic, uint) -> uint |
|
|
|
|
|
|
|
|
HAdd, /// (MetaHalfArithmetic, f16vec2 a, f16vec2 b) -> f16vec2 |
|
|
HAdd, /// (MetaHalfArithmetic, f16vec2 a, f16vec2 b) -> f16vec2 |
|
|
HMul, /// (MetaHalfArithmetic, f16vec2 a, f16vec2 b) -> f16vec2 |
|
|
HMul, /// (MetaHalfArithmetic, f16vec2 a, f16vec2 b) -> f16vec2 |
|
|
@ -689,6 +691,9 @@ private: |
|
|
const Sampler& GetSampler(const Tegra::Shader::Sampler& sampler, |
|
|
const Sampler& GetSampler(const Tegra::Shader::Sampler& sampler, |
|
|
Tegra::Shader::TextureType type, bool is_array, bool is_shadow); |
|
|
Tegra::Shader::TextureType type, bool is_array, bool is_shadow); |
|
|
|
|
|
|
|
|
|
|
|
/// Extracts a sequence of bits from a node |
|
|
|
|
|
Node BitfieldExtract(Node value, u32 offset, u32 bits); |
|
|
|
|
|
|
|
|
void WriteTexsInstructionFloat(BasicBlock& bb, Tegra::Shader::Instruction instr, Node texture); |
|
|
void WriteTexsInstructionFloat(BasicBlock& bb, Tegra::Shader::Instruction instr, Node texture); |
|
|
void WriteTexsInstructionHalfFloat(BasicBlock& bb, Tegra::Shader::Instruction instr, |
|
|
void WriteTexsInstructionHalfFloat(BasicBlock& bb, Tegra::Shader::Instruction instr, |
|
|
Node texture); |
|
|
Node texture); |
|
|
|