diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-04-27 07:07:18 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-06-21 02:38:33 +0200 |
commit | 06c4ce86458310870abec90ada68ac393256b9b6 (patch) | |
tree | 43957a5f0e33c044b1206663e91d390ef1336d2a /src/video_core/shader/shader_ir.h | |
parent | gl_rasterizer: Track texture buffer usage (diff) | |
download | yuzu-06c4ce86458310870abec90ada68ac393256b9b6.tar yuzu-06c4ce86458310870abec90ada68ac393256b9b6.tar.gz yuzu-06c4ce86458310870abec90ada68ac393256b9b6.tar.bz2 yuzu-06c4ce86458310870abec90ada68ac393256b9b6.tar.lz yuzu-06c4ce86458310870abec90ada68ac393256b9b6.tar.xz yuzu-06c4ce86458310870abec90ada68ac393256b9b6.tar.zst yuzu-06c4ce86458310870abec90ada68ac393256b9b6.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/shader/shader_ir.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h index 1b84c0672..c7f264371 100644 --- a/src/video_core/shader/shader_ir.h +++ b/src/video_core/shader/shader_ir.h @@ -104,6 +104,10 @@ public: return used_samplers; } + const std::set<Image>& GetImages() const { + return used_images; + } + const std::array<bool, Tegra::Engines::Maxwell3D::Regs::NumClipDistances>& GetClipDistances() const { return used_clip_distances; @@ -154,6 +158,7 @@ private: u32 DecodeConversion(NodeBlock& bb, u32 pc); u32 DecodeMemory(NodeBlock& bb, u32 pc); u32 DecodeTexture(NodeBlock& bb, u32 pc); + u32 DecodeImage(NodeBlock& bb, u32 pc); u32 DecodeFloatSetPredicate(NodeBlock& bb, u32 pc); u32 DecodeIntegerSetPredicate(NodeBlock& bb, u32 pc); u32 DecodeHalfSetPredicate(NodeBlock& bb, u32 pc); @@ -254,6 +259,9 @@ private: Tegra::Shader::TextureType type, bool is_array, bool is_shadow); + /// Accesses an image. + const Image& GetImage(Tegra::Shader::Image image, Tegra::Shader::ImageType type); + /// Extracts a sequence of bits from a node Node BitfieldExtract(Node value, u32 offset, u32 bits); @@ -329,6 +337,7 @@ private: std::set<Tegra::Shader::Attribute::Index> used_output_attributes; std::map<u32, ConstBuffer> used_cbufs; std::set<Sampler> used_samplers; + std::set<Image> used_images; std::array<bool, Tegra::Engines::Maxwell3D::Regs::NumClipDistances> used_clip_distances{}; std::map<GlobalMemoryBase, GlobalMemoryUsage> used_global_memory; bool uses_physical_attributes{}; // Shader uses AL2P or physical attribute read/writes |