summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_buffer_cache.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-06-20 01:47:48 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-06-24 07:36:14 +0200
commit32a2dcd4153f4e2aea7b5f88c85d8a352f647f12 (patch)
tree3422389a0dcf71fe8df676bc00222a77ac963825 /src/video_core/renderer_vulkan/vk_buffer_cache.h
parentgl_stream_buffer: Use InvalidateBufferData instead unmap and map (diff)
downloadyuzu-32a2dcd4153f4e2aea7b5f88c85d8a352f647f12.tar
yuzu-32a2dcd4153f4e2aea7b5f88c85d8a352f647f12.tar.gz
yuzu-32a2dcd4153f4e2aea7b5f88c85d8a352f647f12.tar.bz2
yuzu-32a2dcd4153f4e2aea7b5f88c85d8a352f647f12.tar.lz
yuzu-32a2dcd4153f4e2aea7b5f88c85d8a352f647f12.tar.xz
yuzu-32a2dcd4153f4e2aea7b5f88c85d8a352f647f12.tar.zst
yuzu-32a2dcd4153f4e2aea7b5f88c85d8a352f647f12.zip
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_buffer_cache.h')
-rw-r--r--src/video_core/renderer_vulkan/vk_buffer_cache.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.h b/src/video_core/renderer_vulkan/vk_buffer_cache.h
index 682383ff2..3630aca77 100644
--- a/src/video_core/renderer_vulkan/vk_buffer_cache.h
+++ b/src/video_core/renderer_vulkan/vk_buffer_cache.h
@@ -25,10 +25,17 @@ class VKScheduler;
class Buffer final : public VideoCommon::BufferBlock {
public:
- explicit Buffer(const VKDevice& device, VKMemoryManager& memory_manager, VAddr cpu_addr,
- std::size_t size);
+ explicit Buffer(const VKDevice& device, VKMemoryManager& memory_manager, VKScheduler& scheduler,
+ VKStagingBufferPool& staging_pool, VAddr cpu_addr, std::size_t size);
~Buffer();
+ void Upload(std::size_t offset, std::size_t size, const u8* data) const;
+
+ void Download(std::size_t offset, std::size_t size, u8* data) const;
+
+ void CopyFrom(const Buffer& src, std::size_t src_offset, std::size_t dst_offset,
+ std::size_t size) const;
+
VkBuffer Handle() const {
return *buffer.handle;
}
@@ -38,6 +45,9 @@ public:
}
private:
+ VKScheduler& scheduler;
+ VKStagingBufferPool& staging_pool;
+
VKBuffer buffer;
};
@@ -53,15 +63,6 @@ public:
protected:
std::shared_ptr<Buffer> CreateBlock(VAddr cpu_addr, std::size_t size) override;
- void UploadBlockData(const Buffer& buffer, std::size_t offset, std::size_t size,
- const u8* data) override;
-
- void DownloadBlockData(const Buffer& buffer, std::size_t offset, std::size_t size,
- u8* data) override;
-
- void CopyBlock(const Buffer& src, const Buffer& dst, std::size_t src_offset,
- std::size_t dst_offset, std::size_t size) override;
-
private:
const VKDevice& device;
VKMemoryManager& memory_manager;