eden-miror/src/video_core/renderer_vulkan
CamilleLaVey a538cd9aff
[shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362)
Storage buffers can span GPU pages that aren't contiguous in host memory, but the buffer cache assumed one contiguous buffer per binding, so anything crossing a mapping boundary read the wrong bytes. Multi-range binding resolves the real segments and presents them to the shader as one buffer, aliasing their memory into a sparse VkBuffer or gathering them into a copy, all of this was mostly fixed by making a path to use sparse on buffers (the same way as texture cache has it) and retrieve properly the mapping ranges to the virtual pages, including the actual structure on the use of binding sparse.

Meanwhile this fixes Monster Hunter Sunbreak z-fighting, bad performance and mostly vertex explosions (coming from the contiguous buffer read from the shader's game) it's only the basis for a further investigation towards how are we gonna treat phi calculations, optimized them and mostly eradicate the currently excess of exposure on the textures where the lightning trace should not being reflected.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4362
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-09-08 20:42:20 +02:00
..
present [vulkan, vk_pipeline_cache] PSO Optimizations (#4294) 2026-08-30 08:15:29 +02:00
blit_image.cpp [vulkan, vk_pipeline_cache] PSO Optimizations (#4294) 2026-08-30 08:15:29 +02:00
blit_image.h [vulkan] Adjustments on MSAA and BlitHelpers (#4287) 2026-08-23 17:31:09 +02:00
fixed_pipeline_state.cpp [vulkan] 3rd Vulkan Global Maintenance (#4189) 2026-07-09 04:22:43 +02:00
fixed_pipeline_state.h [vulkan] 3rd Vulkan Global Maintenance (#4189) 2026-07-09 04:22:43 +02:00
maxwell_to_vk.cpp [vulkan] 3rd Vulkan Global Maintenance (#4189) 2026-07-09 04:22:43 +02:00
maxwell_to_vk.h [dynarmic, common] pagetable clustering (#3215) 2026-01-13 00:27:31 +01:00
pipeline_helper.h [vulkan] Removal of QCOM sampler limiters + CustomBorderColor and ColorBorderSwizzle adjustments (#4301) 2026-08-25 20:03:18 +02:00
pipeline_statistics.cpp [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
pipeline_statistics.h [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
renderer_vulkan.cpp [core, hle, video_core, memory] Improve multi-process, display layers, dynamic shader cache and rework overlay (#4238) 2026-08-29 01:04:02 +02:00
renderer_vulkan.h [core, hle, video_core, memory] Improve multi-process, display layers, dynamic shader cache and rework overlay (#4238) 2026-08-29 01:04:02 +02:00
vk_blit_screen.cpp [vulkan, android] Initial implementation of LSFG-VK (#4263) 2026-08-17 00:30:19 +02:00
vk_blit_screen.h [vulkan, android] Initial implementation of LSFG-VK (#4263) 2026-08-17 00:30:19 +02:00
vk_buffer_cache.cpp [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
vk_buffer_cache.h [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
vk_buffer_cache_base.cpp Buffer Cache: Fully rework the buffer cache. 2023-04-29 00:46:31 +02:00
vk_command_pool.cpp
vk_command_pool.h
vk_compute_pass.cpp [vulkan, vk_pipeline_cache] PSO Optimizations (#4294) 2026-08-30 08:15:29 +02:00
vk_compute_pass.h [vulkan] 4th Vulkan Global Maintenance (#4212) 2026-07-16 20:56:00 +02:00
vk_compute_pipeline.cpp [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_compute_pipeline.h [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_descriptor_buffer.cpp [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_descriptor_buffer.h [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_descriptor_pool.cpp [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
vk_descriptor_pool.h [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
vk_fence_manager.cpp Clang format and ddress feedback 2023-04-24 12:38:47 +02:00
vk_fence_manager.h Query Cache: address issues 2023-09-23 23:05:30 +02:00
vk_graphics_pipeline.cpp [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_graphics_pipeline.h [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_master_semaphore.cpp [vulkan] 3rd Vulkan Global Maintenance (#4189) 2026-07-09 04:22:43 +02:00
vk_master_semaphore.h [vk] Fix lost wakeup in fence mode using atomic wait (#3598) 2026-02-24 06:37:28 +01:00
vk_multi_range_buffer.cpp [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
vk_multi_range_buffer.h [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
vk_pipeline_cache.cpp [vulkan, vk_pipeline_cache] PSO Optimizations (#4294) 2026-08-30 08:15:29 +02:00
vk_pipeline_cache.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
vk_present_manager.cpp [cmake] Fix some macOS compilation errors (#4350) 2026-09-05 23:43:46 +02:00
vk_present_manager.h [vulkan, android] Initial implementation of LSFG-VK (#4263) 2026-08-17 00:30:19 +02:00
vk_query_cache.cpp [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
vk_query_cache.h [vulkan] 2nd Vulkan Global Maintenance (#3853) 2026-04-24 16:37:18 +02:00
vk_rasterizer.cpp [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
vk_rasterizer.h [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_render_pass_cache.cpp [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
vk_render_pass_cache.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
vk_resource_pool.cpp [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_resource_pool.h
vk_scheduler.cpp [cmake] Fix some macOS compilation errors (#4350) 2026-09-05 23:43:46 +02:00
vk_scheduler.h [vulkan] Adjustments on MSAA and BlitHelpers (#4287) 2026-08-23 17:31:09 +02:00
vk_shader_util.cpp Revert some wip changes 2025-04-28 16:14:42 -03:00
vk_shader_util.h Revert some wip changes 2025-04-28 16:14:42 -03:00
vk_staging_buffer_pool.cpp [Vulkan] Apply MK8D Buffer Fix to Linux (#4289) 2026-08-23 17:43:35 +02:00
vk_staging_buffer_pool.h [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_state_tracker.cpp [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
vk_state_tracker.h [vulkan] 2nd Vulkan Global Maintenance (#3853) 2026-04-24 16:37:18 +02:00
vk_swapchain.cpp [vulkan, android] Initial implementation of LSFG-VK (#4263) 2026-08-17 00:30:19 +02:00
vk_swapchain.h [vk] unify VkSurfaceKHR with Android and the rest of platforms; remove technically incorrect nullptr() ctor for handles (#2971) 2026-03-05 07:32:18 +01:00
vk_texture_cache.cpp [vulkan] Removal of QCOM sampler limiters + CustomBorderColor and ColorBorderSwizzle adjustments (#4301) 2026-08-25 20:03:18 +02:00
vk_texture_cache.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
vk_texture_cache_base.cpp
vk_turbo_mode.cpp [*] basic in-house cpp linting (#4039) 2026-06-04 05:49:07 +02:00
vk_turbo_mode.h [*] basic in-house cpp linting (#4039) 2026-06-04 05:49:07 +02:00
vk_update_descriptor.cpp [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00
vk_update_descriptor.h [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251) 2026-08-05 16:58:43 +02:00