diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-09-25 15:18:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-25 15:18:29 +0200 |
commit | 854457a392b6d38168f7f9d19d1fa8c43fad653c (patch) | |
tree | 3bc1007b5776f1ce82c057875609105de0a1ca44 /src/video_core/buffer_cache/buffer_cache_base.h | |
parent | Merge pull request #11569 from german77/lle_applet (diff) | |
parent | Query Cache: Fix Prefix Sums (diff) | |
download | yuzu-854457a392b6d38168f7f9d19d1fa8c43fad653c.tar yuzu-854457a392b6d38168f7f9d19d1fa8c43fad653c.tar.gz yuzu-854457a392b6d38168f7f9d19d1fa8c43fad653c.tar.bz2 yuzu-854457a392b6d38168f7f9d19d1fa8c43fad653c.tar.lz yuzu-854457a392b6d38168f7f9d19d1fa8c43fad653c.tar.xz yuzu-854457a392b6d38168f7f9d19d1fa8c43fad653c.tar.zst yuzu-854457a392b6d38168f7f9d19d1fa8c43fad653c.zip |
Diffstat (limited to 'src/video_core/buffer_cache/buffer_cache_base.h')
-rw-r--r-- | src/video_core/buffer_cache/buffer_cache_base.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache_base.h b/src/video_core/buffer_cache/buffer_cache_base.h index 0b7135d49..c4f6e8d12 100644 --- a/src/video_core/buffer_cache/buffer_cache_base.h +++ b/src/video_core/buffer_cache/buffer_cache_base.h @@ -295,6 +295,10 @@ public: [[nodiscard]] std::pair<Buffer*, u32> ObtainBuffer(GPUVAddr gpu_addr, u32 size, ObtainBufferSynchronize sync_info, ObtainBufferOperation post_op); + + [[nodiscard]] std::pair<Buffer*, u32> ObtainCPUBuffer(VAddr gpu_addr, u32 size, + ObtainBufferSynchronize sync_info, + ObtainBufferOperation post_op); void FlushCachedWrites(); /// Return true when there are uncommitted buffers to be downloaded @@ -335,6 +339,14 @@ public: [[nodiscard]] std::pair<Buffer*, u32> GetDrawIndirectBuffer(); + template <typename Func> + void BufferOperations(Func&& func) { + do { + channel_state->has_deleted_buffers = false; + func(); + } while (channel_state->has_deleted_buffers); + } + std::recursive_mutex mutex; Runtime& runtime; |