summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-12-20 22:51:38 -0300
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-01-15 17:54:49 -0300
commit12a95ff4532f7133893d55c964f1a62c6611d753 (patch)
treec7edb3f54c73d44a8459fded09790b21f148cf0c /src
parent2f87fd060d6bed70fb90d97f8c847a0bd03d4c43 (diff)
shader_ir: Add local memory getters
Diffstat (limited to 'src')
-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) {