John
2 days ago
committed by
crueter
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
3 changed files with
2 additions and
9 deletions
-
src/video_core/renderer_vulkan/vk_buffer_cache.cpp
-
src/video_core/renderer_vulkan/vk_buffer_cache.h
-
src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
|
|
|
@ -564,7 +564,7 @@ void BufferCacheRuntime::BindVertexBuffer(u32 index, VkBuffer buffer, u32 offset |
|
|
|
if (index >= device.GetMaxVertexInputBindings()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (device.IsExtExtendedDynamicStateSupported() && !vertex_input_dynamic_state_active) { |
|
|
|
if (device.IsExtExtendedDynamicStateSupported()) { |
|
|
|
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; |
|
|
|
@ -604,7 +604,7 @@ void BufferCacheRuntime::BindVertexBuffers(VideoCommon::HostBindings<Buffer>& bi |
|
|
|
if (binding_count == 0) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (device.IsExtExtendedDynamicStateSupported() && !vertex_input_dynamic_state_active) { |
|
|
|
if (device.IsExtExtendedDynamicStateSupported()) { |
|
|
|
scheduler.Record([bindings_ = std::move(bindings), buffer_handles_ = std::move(buffer_handles), binding_count](vk::CommandBuffer cmdbuf) { |
|
|
|
cmdbuf.BindVertexBuffers2EXT(bindings_.min_index, binding_count, buffer_handles_.data(), bindings_.offsets.data(), bindings_.sizes.data(), bindings_.strides.data()); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -131,10 +131,6 @@ public: |
|
|
|
|
|
|
|
void BindVertexBuffers(VideoCommon::HostBindings<Buffer>& bindings); |
|
|
|
|
|
|
|
void SetVertexInputDynamicState(bool is_active) { |
|
|
|
vertex_input_dynamic_state_active = is_active; |
|
|
|
} |
|
|
|
|
|
|
|
void BindTransformFeedbackBuffer(u32 index, VkBuffer buffer, u32 offset, u32 size); |
|
|
|
|
|
|
|
void BindTransformFeedbackBuffers(VideoCommon::HostBindings<Buffer>& bindings); |
|
|
|
@ -197,8 +193,6 @@ private: |
|
|
|
|
|
|
|
bool limit_dynamic_storage_buffers = false; |
|
|
|
u32 max_dynamic_storage_buffers = (std::numeric_limits<u32>::max)(); |
|
|
|
|
|
|
|
bool vertex_input_dynamic_state_active = false; |
|
|
|
}; |
|
|
|
|
|
|
|
struct BufferCacheParams { |
|
|
|
|
|
|
|
@ -478,7 +478,6 @@ bool GraphicsPipeline::ConfigureImpl(bool is_indexed) { |
|
|
|
} |
|
|
|
|
|
|
|
buffer_cache.UpdateGraphicsBuffers(is_indexed); |
|
|
|
buffer_cache.runtime.SetVertexInputDynamicState(HasDynamicVertexInput()); |
|
|
|
buffer_cache.BindHostGeometryBuffers(is_indexed); |
|
|
|
|
|
|
|
guest_descriptor_queue.Acquire(scheduler, num_descriptor_entries); |
|
|
|
|