From 4bc5469f52157cd18e697120df40e40e32365e89 Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Sun, 23 Apr 2023 21:37:13 +0200 Subject: Texture Cache: Release stagging buffers on tick frame --- src/video_core/renderer_vulkan/vk_texture_cache.cpp | 13 ++++++++++++- src/video_core/renderer_vulkan/vk_texture_cache.h | 5 ++++- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'src/video_core/renderer_vulkan') 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 @@ -// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later #include @@ -1342,6 +1342,17 @@ void Image::UploadMemory(const StagingBufferRef& map, std::span copies) { + std::array buffer_handles{ + buffer, + }; + std::array buffer_offsets{ + offset, + }; + DownloadMemory(buffer_handles, buffer_offsets, copies); +} + void Image::DownloadMemory(std::span buffers_span, std::span offsets_span, std::span copies) { 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 @@ -// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later #pragma once @@ -138,6 +138,9 @@ public: void UploadMemory(const StagingBufferRef& map, std::span copies); + void DownloadMemory(VkBuffer buffer, VkDeviceSize offset, + std::span copies); + void DownloadMemory(std::span buffers, std::span offsets, std::span copies); -- cgit v1.2.3