diff options
| author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2018-12-20 22:58:33 -0300 |
|---|---|---|
| committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-01-15 17:54:49 -0300 |
| commit | 60f044df566569d00106a7bce28110aaca9fa534 (patch) | |
| tree | e3084b477057c9c8d32de5ea0a306bd07f811381 /src/video_core/shader/shader_ir.h | |
| parent | e3c55e31d7d15066d565e6cd728d12526e91d8e2 (diff) | |
shader_ir: Add half float helpers
Diffstat (limited to 'src/video_core/shader/shader_ir.h')
| -rw-r--r-- | src/video_core/shader/shader_ir.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h index 84c016da6..f3b17d2eb 100644 --- a/src/video_core/shader/shader_ir.h +++ b/src/video_core/shader/shader_ir.h @@ -653,6 +653,13 @@ private: /// Conditionally absolute/negated integer. Absolute is applied first Node GetOperandAbsNegInteger(Node value, bool absolute, bool negate, bool is_signed); + /// Unpacks a half immediate from an instruction + Node UnpackHalfImmediate(Tegra::Shader::Instruction instr, bool has_negation); + /// Merges a half pair into another value + Node HalfMerge(Node dest, Node src, Tegra::Shader::HalfMerge merge); + /// Conditionally absolute/negated half float pair. Absolute is applied first + Node GetOperandAbsNegHalf(Node value, bool absolute, bool negate); + template <typename... T> inline Node Operation(OperationCode code, const T*... operands) { return StoreNode(OperationNode(code, operands...)); |
