summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2023-04-23 21:37:13 +0200
committerGravatar Fernando Sahmkow2023-04-29 15:31:38 +0200
commit4bc5469f52157cd18e697120df40e40e32365e89 (patch)
tree43879297dd91ac1ab824010610e724c37ec3cb95 /src/video_core/renderer_vulkan
parentAddress Feedback & Clang Format (diff)
downloadyuzu-4bc5469f52157cd18e697120df40e40e32365e89.tar.gz
yuzu-4bc5469f52157cd18e697120df40e40e32365e89.tar.xz
yuzu-4bc5469f52157cd18e697120df40e40e32365e89.zip
Texture Cache: Release stagging buffers on tick frame
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.cpp13
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.h5
2 files changed, 16 insertions, 2 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
index da3841bb3..d0a7d8f35 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
@@ -1,4 +1,4 @@
1// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project 1// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
2// SPDX-License-Identifier: GPL-3.0-or-later 2// SPDX-License-Identifier: GPL-3.0-or-later
3 3
4#include <algorithm> 4#include <algorithm>
@@ -1342,6 +1342,17 @@ void Image::UploadMemory(const StagingBufferRef& map, std::span<const BufferImag
1342 UploadMemory(map.buffer, map.offset, copies); 1342 UploadMemory(map.buffer, map.offset, copies);
1343} 1343}
1344 1344
1345void Image::DownloadMemory(VkBuffer buffer, VkDeviceSize offset,
1346 std::span<const VideoCommon::BufferImageCopy> copies) {
1347 std::array buffer_handles{
1348 buffer,
1349 };
1350 std::array buffer_offsets{
1351 offset,
1352 };
1353 DownloadMemory(buffer_handles, buffer_offsets, copies);
1354}
1355
1345void Image::DownloadMemory(std::span<VkBuffer> buffers_span, std::span<VkDeviceSize> offsets_span, 1356void Image::DownloadMemory(std::span<VkBuffer> buffers_span, std::span<VkDeviceSize> offsets_span,
1346 std::span<const VideoCommon::BufferImageCopy> copies) { 1357 std::span<const VideoCommon::BufferImageCopy> copies) {
1347 const bool is_rescaled = True(flags & ImageFlagBits::Rescaled); 1358 const bool is_rescaled = True(flags & ImageFlagBits::Rescaled);
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h
index bdaf43ba4..c656c5386 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.h
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.h
@@ -1,4 +1,4 @@
1// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project 1// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
2// SPDX-License-Identifier: GPL-3.0-or-later 2// SPDX-License-Identifier: GPL-3.0-or-later
3 3
4#pragma once 4#pragma once
@@ -138,6 +138,9 @@ public:
138 void UploadMemory(const StagingBufferRef& map, 138 void UploadMemory(const StagingBufferRef& map,
139 std::span<const VideoCommon::BufferImageCopy> copies); 139 std::span<const VideoCommon::BufferImageCopy> copies);
140 140
141 void DownloadMemory(VkBuffer buffer, VkDeviceSize offset,
142 std::span<const VideoCommon::BufferImageCopy> copies);
143
141 void DownloadMemory(std::span<VkBuffer> buffers, std::span<VkDeviceSize> offsets, 144 void DownloadMemory(std::span<VkBuffer> buffers, std::span<VkDeviceSize> offsets,
142 std::span<const VideoCommon::BufferImageCopy> copies); 145 std::span<const VideoCommon::BufferImageCopy> copies);
143 146