diff options
| author | John <john@eden-emu.dev> | 2026-07-10 05:00:49 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-07-10 05:00:49 +0200 |
| commit | 5606edd1a654a792a0a1b87d197207f72b7130c0 (patch) | |
| tree | 34762c1ead77bccd6bb8574a57f61e8ceb01daa2 /src | |
| parent | cd003e5ec9e7e4afacbd98015142fc768e17af44 (diff) | |
[Vulkan] Regression Fix - Return BindVertexBuffer2EXT old path (#4199)
Fixes Triangle SMO Smoke Regression
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4199
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_buffer_cache.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_buffer_cache.h | 6 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | 1 |
3 files changed, 2 insertions, 9 deletions
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp index bc28bb0111..00f4f81f29 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.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()); }); diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.h b/src/video_core/renderer_vulkan/vk_buffer_cache.h index 9cf0107e46..764263717d 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.h +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.h @@ -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 { diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index ebc6da5a4b..9c9a599f2e 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp @@ -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); |
