eden-miror/src/video_core/renderer_opengl
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 [opengl] remove leftover invalid uniform 2ui being sent every frame x every fb (doesnt exist on opengl_present.frag) (#3358) 2026-01-21 00:12:18 +01:00
blit_image.cpp
blit_image.h
gl_blit_screen.cpp [video_core/host_shaders] add Snapdragon GSRv1 fragment shaders (#3307) 2026-05-24 01:38:19 +02:00
gl_blit_screen.h
gl_buffer_cache.cpp [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
gl_buffer_cache.h [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
gl_buffer_cache_base.cpp
gl_compute_pipeline.cpp [video_core] fix redundant resize-copy overload and just use default-init resize, to reduce stutter on Mario BP (#3874) 2026-05-29 03:28:47 +02:00
gl_compute_pipeline.h
gl_device.cpp [meta] Discourage profanity usage (#4239) 2026-08-09 02:53:16 +02:00
gl_device.h [opengl] query GL_MAX_CLIP_DISTANCES instead of hardcoding 8 (#4095) 2026-06-15 04:30:40 +02:00
gl_fence_manager.cpp
gl_fence_manager.h
gl_graphics_pipeline.cpp [video_core] fix redundant resize-copy overload and just use default-init resize, to reduce stutter on Mario BP (#3874) 2026-05-29 03:28:47 +02:00
gl_graphics_pipeline.h
gl_query_cache.cpp
gl_query_cache.h
gl_rasterizer.cpp [video_core] fix redundant resize-copy overload and just use default-init resize, to reduce stutter on Mario BP (#3874) 2026-05-29 03:28:47 +02:00
gl_rasterizer.h
gl_resource_manager.cpp
gl_resource_manager.h
gl_shader_cache.cpp [vulkan, qcom] Fix shader float controls on QCOM driver (#4297) 2026-08-24 17:57:12 +02:00
gl_shader_cache.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
gl_shader_context.h
gl_shader_manager.cpp
gl_shader_manager.h
gl_shader_util.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
gl_shader_util.h
gl_staging_buffer_pool.cpp
gl_staging_buffer_pool.h
gl_state_tracker.cpp [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
gl_state_tracker.h
gl_texture_cache.cpp [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
gl_texture_cache.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
gl_texture_cache_base.cpp
maxwell_to_gl.h
renderer_opengl.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_opengl.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
util_shaders.cpp [vk, ogl] Remove dedicated precomputed swizzle table; use shorter inline table in block_linear swizzle shaders (#4146) 2026-07-02 19:24:07 +02:00
util_shaders.h [vk, ogl] Remove dedicated precomputed swizzle table; use shorter inline table in block_linear swizzle shaders (#4146) 2026-07-02 19:24:07 +02:00