|
|
|
@ -583,7 +583,9 @@ void BufferCacheRuntime::BindVertexBuffer(u32 index, VkBuffer buffer, u32 offset |
|
|
|
if (index >= device.GetMaxVertexInputBindings()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (device.IsExtExtendedDynamicStateSupported()) { |
|
|
|
// Use BindVertexBuffers2EXT only if EDS1 is supported AND VIDS is not active
|
|
|
|
// When VIDS is active, the pipeline doesn't declare VERTEX_INPUT_BINDING_STRIDE as dynamic
|
|
|
|
if (device.IsExtExtendedDynamicStateSupported() && !device.IsExtVertexInputDynamicStateSupported()) { |
|
|
|
scheduler.Record([index, buffer, offset, size, stride](vk::CommandBuffer cmdbuf) { |
|
|
|
const VkDeviceSize vk_offset = buffer != VK_NULL_HANDLE ? offset : 0; |
|
|
|
const VkDeviceSize vk_size = buffer != VK_NULL_HANDLE ? size : VK_WHOLE_SIZE; |
|
|
|
@ -623,7 +625,8 @@ void BufferCacheRuntime::BindVertexBuffers(VideoCommon::HostBindings<Buffer>& bi |
|
|
|
if (binding_count == 0) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (device.IsExtExtendedDynamicStateSupported()) { |
|
|
|
// Use BindVertexBuffers2EXT only if EDS1 is supported AND VIDS is not active
|
|
|
|
if (device.IsExtExtendedDynamicStateSupported() && !device.IsExtVertexInputDynamicStateSupported()) { |
|
|
|
scheduler.Record([bindings_ = std::move(bindings), |
|
|
|
buffer_handles_ = std::move(buffer_handles), |
|
|
|
binding_count](vk::CommandBuffer cmdbuf) { |
|
|
|
|