diff options
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_buffer_cache.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp index 60a6ac651..e15865d16 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp | |||
| @@ -529,17 +529,20 @@ void BufferCacheRuntime::BindVertexBuffers(VideoCommon::HostBindings<Buffer>& bi | |||
| 529 | buffer_handles.push_back(handle); | 529 | buffer_handles.push_back(handle); |
| 530 | } | 530 | } |
| 531 | if (device.IsExtExtendedDynamicStateSupported()) { | 531 | if (device.IsExtExtendedDynamicStateSupported()) { |
| 532 | scheduler.Record([bindings_ = std::move(bindings), | 532 | scheduler.Record([this, bindings_ = std::move(bindings), |
| 533 | buffer_handles_ = std::move(buffer_handles)](vk::CommandBuffer cmdbuf) { | 533 | buffer_handles_ = std::move(buffer_handles)](vk::CommandBuffer cmdbuf) { |
| 534 | cmdbuf.BindVertexBuffers2EXT(bindings_.min_index, | 534 | cmdbuf.BindVertexBuffers2EXT(bindings_.min_index, |
| 535 | bindings_.max_index - bindings_.min_index, | 535 | std::min(bindings_.max_index - bindings_.min_index, |
| 536 | device.GetMaxVertexInputBindings()), | ||
| 536 | buffer_handles_.data(), bindings_.offsets.data(), | 537 | buffer_handles_.data(), bindings_.offsets.data(), |
| 537 | bindings_.sizes.data(), bindings_.strides.data()); | 538 | bindings_.sizes.data(), bindings_.strides.data()); |
| 538 | }); | 539 | }); |
| 539 | } else { | 540 | } else { |
| 540 | scheduler.Record([bindings_ = std::move(bindings), | 541 | scheduler.Record([this, bindings_ = std::move(bindings), |
| 541 | buffer_handles_ = std::move(buffer_handles)](vk::CommandBuffer cmdbuf) { | 542 | buffer_handles_ = std::move(buffer_handles)](vk::CommandBuffer cmdbuf) { |
| 542 | cmdbuf.BindVertexBuffers(bindings_.min_index, bindings_.max_index - bindings_.min_index, | 543 | cmdbuf.BindVertexBuffers(bindings_.min_index, |
| 544 | std::min(bindings_.max_index - bindings_.min_index, | ||
| 545 | device.GetMaxVertexInputBindings()), | ||
| 543 | buffer_handles_.data(), bindings_.offsets.data()); | 546 | buffer_handles_.data(), bindings_.offsets.data()); |
| 544 | }); | 547 | }); |
| 545 | } | 548 | } |