diff options
author | bunnei <bunneidev@gmail.com> | 2020-06-13 19:48:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-13 19:48:27 +0200 |
commit | c2ea1e1bcb88f8e307e54cf588829a516b40258e (patch) | |
tree | 3975cb756ef9d289cc13f3f6dc2a302dacc2c758 /src/video_core/shader/shader_ir.h | |
parent | Merge pull request #3986 from ReinUsesLisp/shader-cache (diff) | |
parent | shader/texture: Join separate image and sampler pairs offline (diff) | |
download | yuzu-c2ea1e1bcb88f8e307e54cf588829a516b40258e.tar yuzu-c2ea1e1bcb88f8e307e54cf588829a516b40258e.tar.gz yuzu-c2ea1e1bcb88f8e307e54cf588829a516b40258e.tar.bz2 yuzu-c2ea1e1bcb88f8e307e54cf588829a516b40258e.tar.lz yuzu-c2ea1e1bcb88f8e307e54cf588829a516b40258e.tar.xz yuzu-c2ea1e1bcb88f8e307e54cf588829a516b40258e.tar.zst yuzu-c2ea1e1bcb88f8e307e54cf588829a516b40258e.zip |
Diffstat (limited to 'src/video_core/shader/shader_ir.h')
-rw-r--r-- | src/video_core/shader/shader_ir.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h index 15ae152f2..3a98b2104 100644 --- a/src/video_core/shader/shader_ir.h +++ b/src/video_core/shader/shader_ir.h @@ -330,8 +330,8 @@ private: OperationCode GetPredicateCombiner(Tegra::Shader::PredOperation operation); /// Queries the missing sampler info from the execution context. - SamplerInfo GetSamplerInfo(SamplerInfo info, u32 offset, - std::optional<u32> buffer = std::nullopt); + SamplerInfo GetSamplerInfo(SamplerInfo info, + std::optional<Tegra::Engines::SamplerDescriptor> sampler); /// Accesses a texture sampler. std::optional<Sampler> GetSampler(Tegra::Shader::Sampler sampler, SamplerInfo info); @@ -409,8 +409,14 @@ private: std::tuple<Node, u32, u32> TrackCbuf(Node tracked, const NodeBlock& code, s64 cursor) const; - std::tuple<Node, TrackSampler> TrackBindlessSampler(Node tracked, const NodeBlock& code, - s64 cursor); + std::pair<Node, TrackSampler> TrackBindlessSampler(Node tracked, const NodeBlock& code, + s64 cursor); + + std::pair<Node, TrackSampler> HandleBindlessIndirectRead(const CbufNode& cbuf, + const OperationNode& operation, + Node gpr, Node base_offset, + Node tracked, const NodeBlock& code, + s64 cursor); std::optional<u32> TrackImmediate(Node tracked, const NodeBlock& code, s64 cursor) const; |