summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_ir.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-02-07 04:05:41 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-04-14 05:25:32 +0200
commit5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80 (patch)
treed3f411c5b0c15539bd36e86944cfdc28972fb98a /src/video_core/shader/shader_ir.h
parentMerge pull request #2378 from lioncash/ro (diff)
downloadyuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar
yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.gz
yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.bz2
yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.lz
yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.xz
yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.zst
yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/shader/shader_ir.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h
index 4888998d3..1afab08c0 100644
--- a/src/video_core/shader/shader_ir.h
+++ b/src/video_core/shader/shader_ir.h
@@ -276,6 +276,11 @@ struct GlobalMemoryBase {
}
};
+struct GlobalMemoryUsage {
+ bool is_read{};
+ bool is_written{};
+};
+
struct MetaArithmetic {
bool precise{};
};
@@ -578,8 +583,8 @@ public:
return used_clip_distances;
}
- const std::set<GlobalMemoryBase>& GetGlobalMemoryBases() const {
- return used_global_memory_bases;
+ const std::map<GlobalMemoryBase, GlobalMemoryUsage>& GetGlobalMemory() const {
+ return used_global_memory;
}
std::size_t GetLength() const {
@@ -781,6 +786,11 @@ private:
std::pair<Node, s64> TrackRegister(const GprNode* tracked, const NodeBlock& code, s64 cursor);
+ std::tuple<Node, Node, GlobalMemoryBase> TrackAndGetGlobalMemory(NodeBlock& bb,
+ Node addr_register,
+ u32 immediate_offset,
+ bool is_write);
+
template <typename... T>
Node Operation(OperationCode code, const T*... operands) {
return StoreNode(OperationNode(code, operands...));
@@ -834,7 +844,7 @@ private:
std::map<u32, ConstBuffer> used_cbufs;
std::set<Sampler> used_samplers;
std::array<bool, Tegra::Engines::Maxwell3D::Regs::NumClipDistances> used_clip_distances{};
- std::set<GlobalMemoryBase> used_global_memory_bases;
+ std::map<GlobalMemoryBase, GlobalMemoryUsage> used_global_memory;
Tegra::Shader::Header header;
};