diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2018-12-26 06:58:47 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-01-15 21:54:53 +0100 |
commit | 2faad9bf23dbcedc80dca7ed9ad4b81c0416dd5e (patch) | |
tree | 3faa264db225f2ae09ccf417fd962eddb40c2235 /src/video_core/shader/shader_ir.h | |
parent | shader_ir: Remove Ipa primitive (diff) | |
download | yuzu-2faad9bf23dbcedc80dca7ed9ad4b81c0416dd5e.tar yuzu-2faad9bf23dbcedc80dca7ed9ad4b81c0416dd5e.tar.gz yuzu-2faad9bf23dbcedc80dca7ed9ad4b81c0416dd5e.tar.bz2 yuzu-2faad9bf23dbcedc80dca7ed9ad4b81c0416dd5e.tar.lz yuzu-2faad9bf23dbcedc80dca7ed9ad4b81c0416dd5e.tar.xz yuzu-2faad9bf23dbcedc80dca7ed9ad4b81c0416dd5e.tar.zst yuzu-2faad9bf23dbcedc80dca7ed9ad4b81c0416dd5e.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/shader/shader_ir.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h index 52c7c3180..75d13fa4d 100644 --- a/src/video_core/shader/shader_ir.h +++ b/src/video_core/shader/shader_ir.h @@ -88,6 +88,7 @@ enum class OperationCode { IBitwiseXor, /// (MetaArithmetic, int a, int b) -> int IBitwiseNot, /// (MetaArithmetic, int a) -> 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 UAdd, /// (MetaArithmetic, uint a, uint b) -> uint @@ -104,8 +105,9 @@ enum class OperationCode { UBitwiseOr, /// (MetaArithmetic, uint a, uint b) -> uint UBitwiseXor, /// (MetaArithmetic, uint a, uint b) -> 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 HMul, /// (MetaHalfArithmetic, f16vec2 a, f16vec2 b) -> f16vec2 @@ -689,6 +691,9 @@ private: const Sampler& GetSampler(const Tegra::Shader::Sampler& sampler, 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 WriteTexsInstructionHalfFloat(BasicBlock& bb, Tegra::Shader::Instruction instr, Node texture); |