summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_buffer_cache.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2019-03-16 05:05:24 +0100
committerGitHub <noreply@github.com>2019-03-16 05:05:24 +0100
commit47b622825ca0ff664044abdf2d64a141452a8d1c (patch)
treeff18141caee2b1a460e6d5e22283e78c073880b0 /src/video_core/renderer_vulkan/vk_buffer_cache.h
parentMerge pull request #2048 from FearlessTobi/port-3924 (diff)
parentgpu: Use host address for caching instead of guest address. (diff)
downloadyuzu-47b622825ca0ff664044abdf2d64a141452a8d1c.tar
yuzu-47b622825ca0ff664044abdf2d64a141452a8d1c.tar.gz
yuzu-47b622825ca0ff664044abdf2d64a141452a8d1c.tar.bz2
yuzu-47b622825ca0ff664044abdf2d64a141452a8d1c.tar.lz
yuzu-47b622825ca0ff664044abdf2d64a141452a8d1c.tar.xz
yuzu-47b622825ca0ff664044abdf2d64a141452a8d1c.tar.zst
yuzu-47b622825ca0ff664044abdf2d64a141452a8d1c.zip
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_buffer_cache.h')
-rw-r--r--src/video_core/renderer_vulkan/vk_buffer_cache.h31
1 files changed, 24 insertions, 7 deletions
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.h b/src/video_core/renderer_vulkan/vk_buffer_cache.h
index d8e916f31..8b415744b 100644
--- a/src/video_core/renderer_vulkan/vk_buffer_cache.h
+++ b/src/video_core/renderer_vulkan/vk_buffer_cache.h
@@ -24,22 +24,39 @@ class VKFence;
class VKMemoryManager;
class VKStreamBuffer;
-struct CachedBufferEntry final : public RasterizerCacheObject {
- VAddr GetAddr() const override {
- return addr;
+class CachedBufferEntry final : public RasterizerCacheObject {
+public:
+ explicit CachedBufferEntry(VAddr cpu_addr, std::size_t size, u64 offset, std::size_t alignment,
+ u8* host_ptr);
+
+ VAddr GetCpuAddr() const override {
+ return cpu_addr;
}
std::size_t GetSizeInBytes() const override {
return size;
}
+ std::size_t GetSize() const {
+ return size;
+ }
+
+ u64 GetOffset() const {
+ return offset;
+ }
+
+ std::size_t GetAlignment() const {
+ return alignment;
+ }
+
// We do not have to flush this cache as things in it are never modified by us.
void Flush() override {}
- VAddr addr;
- std::size_t size;
- u64 offset;
- std::size_t alignment;
+private:
+ VAddr cpu_addr{};
+ std::size_t size{};
+ u64 offset{};
+ std::size_t alignment{};
};
class VKBufferCache final : public RasterizerCache<std::shared_ptr<CachedBufferEntry>> {