diff options
| author | 2021-02-13 05:11:48 -0300 | |
|---|---|---|
| committer | 2021-02-13 05:11:48 -0300 | |
| commit | 682d82faf3bfc96603bf9b2c77436b1b23af24e0 (patch) | |
| tree | ecab4e35e5f74d078746708cc76cea8a4a470930 /src/video_core/renderer_vulkan | |
| parent | Merge pull request #5741 from ReinUsesLisp/new-bufcache (diff) | |
| download | yuzu-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.cpp | 2 |
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; |