summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-12-21 02:51:38 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-01-15 21:54:49 +0100
commit12a95ff4532f7133893d55c964f1a62c6611d753 (patch)
treec7edb3f54c73d44a8459fded09790b21f148cf0c
parentshader_ir: Add internal flag getters (diff)
downloadyuzu-12a95ff4532f7133893d55c964f1a62c6611d753.tar
yuzu-12a95ff4532f7133893d55c964f1a62c6611d753.tar.gz
yuzu-12a95ff4532f7133893d55c964f1a62c6611d753.tar.bz2
yuzu-12a95ff4532f7133893d55c964f1a62c6611d753.tar.lz
yuzu-12a95ff4532f7133893d55c964f1a62c6611d753.tar.xz
yuzu-12a95ff4532f7133893d55c964f1a62c6611d753.tar.zst
yuzu-12a95ff4532f7133893d55c964f1a62c6611d753.zip
-rw-r--r--src/video_core/shader/shader_ir.cpp4
-rw-r--r--src/video_core/shader/shader_ir.h3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_ir.cpp b/src/video_core/shader/shader_ir.cpp
index 62a139e56..42695149f 100644
--- a/src/video_core/shader/shader_ir.cpp
+++ b/src/video_core/shader/shader_ir.cpp
@@ -117,6 +117,10 @@ Node ShaderIR::GetInternalFlag(InternalFlag flag, bool negated) {
return node;
}
+Node ShaderIR::GetLocalMemory(Node address) {
+ return StoreNode(LmemNode(address));
+}
+
/*static*/ OperationCode ShaderIR::SignedToUnsignedCode(OperationCode operation_code,
bool is_signed) {
if (is_signed) {
diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h
index d839d1f1b..64c30bb6a 100644
--- a/src/video_core/shader/shader_ir.h
+++ b/src/video_core/shader/shader_ir.h
@@ -631,6 +631,9 @@ private:
Node GetOutputAttribute(Tegra::Shader::Attribute::Index index, u64 element, Node buffer);
/// Generates a node representing an internal flag
Node GetInternalFlag(InternalFlag flag, bool negated = false);
+ /// Generates a node representing a local memory address
+ Node GetLocalMemory(Node address);
+
template <typename... T>
inline Node Operation(OperationCode code, const T*... operands) {