summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-02-13 05:11:48 -0300
committerGravatar ReinUsesLisp2021-02-13 05:11:48 -0300
commit682d82faf3bfc96603bf9b2c77436b1b23af24e0 (patch)
treeecab4e35e5f74d078746708cc76cea8a4a470930 /src/video_core/renderer_vulkan
parentMerge pull request #5741 from ReinUsesLisp/new-bufcache (diff)
downloadyuzu-682d82faf3bfc96603bf9b2c77436b1b23af24e0.tar.gz
yuzu-682d82faf3bfc96603bf9b2c77436b1b23af24e0.tar.xz
yuzu-682d82faf3bfc96603bf9b2c77436b1b23af24e0.zip
gl_stream_buffer/vk_staging_buffer_pool: Fix size check
Fix a tragic off-by-one condition that causes Vulkan's stream buffer to think it's always full, using fallback memory. The OpenGL was also affected by this bug to a lesser extent.
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
index dfd8c8e5a..9b5786fcb 100644
--- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
+++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
@@ -153,7 +153,7 @@ StagingBufferRef StagingBufferPool::GetStreamBuffer(size_t size) {
153 used_iterator = iterator; 153 used_iterator = iterator;
154 free_iterator = std::max(free_iterator, iterator + size); 154 free_iterator = std::max(free_iterator, iterator + size);
155 155
156 if (iterator + size > STREAM_BUFFER_SIZE) { 156 if (iterator + size >= STREAM_BUFFER_SIZE) {
157 std::fill(sync_ticks.begin() + Region(used_iterator), sync_ticks.begin() + NUM_SYNCS, 157 std::fill(sync_ticks.begin() + Region(used_iterator), sync_ticks.begin() + NUM_SYNCS,
158 current_tick); 158 current_tick);
159 used_iterator = 0; 159 used_iterator = 0;