Browse Source

vk_texture_cache: Use Download memory types for texture flushes

Use the Download memory type where it matters.
nce_cpp
ReinUsesLisp 5 years ago
parent
commit
36597c0b38
  1. 10
      src/video_core/renderer_vulkan/vk_texture_cache.cpp
  2. 5
      src/video_core/renderer_vulkan/vk_texture_cache.h

10
src/video_core/renderer_vulkan/vk_texture_cache.cpp

@ -555,7 +555,15 @@ void TextureCacheRuntime::Finish() {
ImageBufferMap TextureCacheRuntime::MapUploadBuffer(size_t size) {
const auto staging_ref = staging_buffer_pool.Request(size, MemoryUsage::Upload);
return ImageBufferMap{
return {
.handle = staging_ref.buffer,
.span = staging_ref.mapped_span,
};
}
ImageBufferMap TextureCacheRuntime::MapDownloadBuffer(size_t size) {
const auto staging_ref = staging_buffer_pool.Request(size, MemoryUsage::Download);
return {
.handle = staging_ref.buffer,
.span = staging_ref.mapped_span,
};

5
src/video_core/renderer_vulkan/vk_texture_cache.h

@ -78,10 +78,7 @@ struct TextureCacheRuntime {
[[nodiscard]] ImageBufferMap MapUploadBuffer(size_t size);
[[nodiscard]] ImageBufferMap MapDownloadBuffer(size_t size) {
// TODO: Have a special function for this
return MapUploadBuffer(size);
}
[[nodiscard]] ImageBufferMap MapDownloadBuffer(size_t size);
void BlitImage(Framebuffer* dst_framebuffer, ImageView& dst, ImageView& src,
const std::array<Offset2D, 2>& dst_region,

Loading…
Cancel
Save