eden-miror/src/video_core
Exverge 5f142c7926
[common/core/dynarmic] Optimize page table allocations (#4219)
Reduces the page entries from 32 bytes to 8 and rewrites `VirtualBuffer` to be more efficient in memory usage and specifically for large zero regions.

The page table will now only reserve 1GiB instead of 4GiB and of this memory it should only use at most ~8MiB.

This PR has the side effect of using Eden on Windows on low memory systems much more plausible since it would previously require ~10GiB of committable memory at front (despite using ~5-6 at most, inadvertently stalling other processes) where as now it should only require around the amount that it'll actually use.

Co-authored-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4219
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2026-09-09 21:35:49 +02:00
..
buffer_cache [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
control [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
engines [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
frame_gen [vulkan, android] Initial implementation of LSFG-VK (#4263) 2026-08-17 00:30:19 +02:00
gpu_logging [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
host1x [cmake] Fix some macOS compilation errors (#4350) 2026-09-05 23:43:46 +02:00
host_shaders [vulkan, sgsr] Adjustments to SGSR implementation (#4293) 2026-08-23 23:36:24 +02:00
query_cache [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
renderer_null nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
renderer_opengl [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
renderer_vulkan [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
texture_cache [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
textures [vulkan] Removal of QCOM sampler limiters + CustomBorderColor and ColorBorderSwizzle adjustments (#4301) 2026-08-25 20:03:18 +02:00
vulkan_common [vulkan] Masquerade VkInfo as PUBGMobile + UE (#4320) 2026-09-08 21:04:08 +02:00
cache_types.h RasterizerMemory: Add filtering for flushing/invalidation operations. 2023-01-01 16:43:58 -05:00
capture.h nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
cdma_pusher.cpp [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
cdma_pusher.h [video_core] fix H264 and jthread() causing spurious errors (#3907) 2026-04-29 19:23:20 +02:00
CMakeLists.txt [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
compatible_formats.cpp renderer_vulkan: Fix some missing view formats 2023-07-01 16:03:35 +03:00
compatible_formats.h
delayed_destruction_ring.h [VK] Rework SPIRV Shader Optimization (#238) 2025-07-03 01:13:33 +00:00
dirty_flags.cpp
dirty_flags.h [scheduler, dma, maxwell] Reduce CPU stalls in the GPU command processing pipeline through multiple targeted optimizations (#3296) 2026-01-18 03:45:18 +01:00
dma_pusher.cpp [video_core] Improve synchronization and refactor buffer cache timing logic (#4182) 2026-07-10 05:25:12 +02:00
dma_pusher.h [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
fence_manager.h [core, gpu, threads] Multithreading refactor (#4254) 2026-08-08 04:39:47 +02:00
framebuffer_config.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
framebuffer_config.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
fsr.cpp [common] replace Common::BitCast with libc++ provided one (#2774) 2025-10-22 02:56:28 +02:00
fsr.h [common] replace Common::BitCast with libc++ provided one (#2774) 2025-10-22 02:56:28 +02:00
gpu.cpp [gpu] Destroy GPU thread after all non-trivial members had been destroyed (#4368) 2026-09-08 20:40:19 +02:00
gpu.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
gpu_thread.cpp [core, gpu, threads] Multithreading refactor (#4254) 2026-08-08 04:39:47 +02:00
gpu_thread.h [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
guest_memory.h Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
invalidation_accumulator.h [video_core] simplify InvalidationAccumulator (#3890) 2026-04-28 00:24:54 +02:00
macro.cpp [meta] Discourage profanity usage (#4239) 2026-08-09 02:53:16 +02:00
macro.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
memory_manager.cpp [common/core/dynarmic] Optimize page table allocations (#4219) 2026-09-09 21:35:49 +02:00
memory_manager.h [common/core/dynarmic] Optimize page table allocations (#4219) 2026-09-09 21:35:49 +02:00
present.h gpu: dependency-inject scaling/antialiasing filter state for capture layers 2024-02-09 09:20:53 -05:00
pte_kind.h [video_core] correct not-quite-correct PTE_kind enumeration (#4077) 2026-06-15 22:05:18 +02:00
query_cache.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
rasterizer_download_area.h Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
rasterizer_interface.h [Rasterizer]: Implement "Skip CPU Inner Invalidation" hack 2025-07-09 04:23:22 +02:00
renderer_base.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_base.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
shader_cache.cpp [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
shader_cache.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
shader_environment.cpp [video_core] gate Mesa EXIT terminator detection behind non-proprietary driver (#4151) 2026-07-01 13:06:00 +02:00
shader_environment.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
shader_notify.cpp
shader_notify.h
smaa_area_tex.h [*] basic in-house cpp linting (#4039) 2026-06-04 05:49:07 +02:00
smaa_search_tex.h [*] basic in-house cpp linting (#4039) 2026-06-04 05:49:07 +02:00
surface.cpp [vulkan] 3rd Vulkan Global Maintenance (#4189) 2026-07-09 04:22:43 +02:00
surface.h [vulkan] 3rd Vulkan Global Maintenance (#4189) 2026-07-09 04:22:43 +02:00
transform_feedback.cpp [vulkan] 2nd Vulkan Global Maintenance (#3853) 2026-04-24 16:37:18 +02:00
transform_feedback.h Remove memory allocations in some hot paths 2023-06-22 08:05:10 +01:00
video_core.cpp [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
video_core.h [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00