diff options
| author | 2021-11-20 14:46:19 +0100 | |
|---|---|---|
| committer | 2021-11-20 14:46:19 +0100 | |
| commit | da2fe8190518d3266df7f4a48f9b651eaea84d4b (patch) | |
| tree | d584caaa250a596a3cbd3cd9d7e3767c13f46663 /src/video_core/renderer_vulkan | |
| parent | TextureCache: Assure full conversions on depth/stencil write shaders. (diff) | |
| download | yuzu-da2fe8190518d3266df7f4a48f9b651eaea84d4b.tar.gz yuzu-da2fe8190518d3266df7f4a48f9b651eaea84d4b.tar.xz yuzu-da2fe8190518d3266df7f4a48f9b651eaea84d4b.zip | |
TextureCache: Refactor and fix linux compiling.
Diffstat (limited to 'src/video_core/renderer_vulkan')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 02215cfc2..f194110e5 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include <vector> | 8 | #include <vector> |
| 9 | 9 | ||
| 10 | #include "common/bit_cast.h" | 10 | #include "common/bit_cast.h" |
| 11 | #include "common/bit_util.h" | ||
| 11 | #include "common/settings.h" | 12 | #include "common/settings.h" |
| 12 | 13 | ||
| 13 | #include "video_core/engines/fermi_2d.h" | 14 | #include "video_core/engines/fermi_2d.h" |
| @@ -775,16 +776,12 @@ bool TextureCacheRuntime::ShouldReinterpret(Image& dst, Image& src) { | |||
| 775 | return false; | 776 | return false; |
| 776 | } | 777 | } |
| 777 | 778 | ||
| 778 | [[nodiscard]] size_t NextPow2(size_t value) { | ||
| 779 | return static_cast<size_t>(1ULL << ((8U * sizeof(size_t)) - std::countl_zero(value - 1U))); | ||
| 780 | } | ||
| 781 | |||
| 782 | VkBuffer TextureCacheRuntime::GetTemporaryBuffer(size_t needed_size) { | 779 | VkBuffer TextureCacheRuntime::GetTemporaryBuffer(size_t needed_size) { |
| 783 | const auto level = (8 * sizeof(size_t)) - std::countl_zero(needed_size - 1ULL); | 780 | const auto level = (8 * sizeof(size_t)) - std::countl_zero(needed_size - 1ULL); |
| 784 | if (buffer_commits[level]) { | 781 | if (buffer_commits[level]) { |
| 785 | return *buffers[level]; | 782 | return *buffers[level]; |
| 786 | } | 783 | } |
| 787 | const auto new_size = NextPow2(needed_size); | 784 | const auto new_size = Common::NextPow2(needed_size); |
| 788 | VkBufferUsageFlags flags = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | | 785 | VkBufferUsageFlags flags = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | |
| 789 | VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | | 786 | VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | |
| 790 | VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT; | 787 | VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT; |