lizzie
83a28dc251
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
...
for core stuff:
just remove unique ptrs that dont need any pointer stability at all (afterall its an allocation within an allocation so yeah)
for fibers:
Main reasoning behind this is because virtualBuffer<> is stupidly fucking expensive and it also clutters my fstat view
ALSO mmap is a syscall, syscalls are bad for performance or whatever
ALSO std::vector<> is better suited for handling this kind of "fixed size thing where its like big but not THAT big" (512 KiB isn't going to kill your memory usage for each fiber...)
for core.cpp stuff
- inlines stuff into std::optional<> as opposed to std::unique_ptr<> (because yknow, we are making the Impl from an unique_ptr, allocating within an allocation is unnecessary)
- reorganizes the structures a bit so padding doesnt screw us up (it's not perfect but eh saves a measly 44 bytes)
- removes unused/dead code
- uses std::vector<> instead of std::deque<>
no perf impact expected, maybe some initialisation boost but very minimal impact nonethless
lto gets rid of most calls anyways - the heavy issue is with shared_ptr and the cache coherency from the atomics... but i clumped them together because well, they kinda do not suffer from cache coherency - hopefully not a mistake
this balloons the size of Impl to about 1.67 MB - which is fine because we throw it in the stack anyways
REST OF INTERFACES: most of them ballooned in size as well, but overhead is ok since its an allocation within an alloc, no stack is used (when it comes to storing these i mean)
Signed-off-by: lizzie lizzie@eden-emu.dev
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3306
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2026-01-16 23:39:16 +01:00
..
buffer_cache
[vk, qcom] Memory, Samplers, BindingBuffers and UniformBufferAlignment set by hardware capabilities for QCOM. ( #3280 )
2026-01-11 05:31:23 +01:00
control
[chore] Fixed a couple memory leaks using up ~15 MB each iteration ( #398 )
2025-12-26 02:55:52 +01:00
engines
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
2026-01-16 23:39:16 +01:00
host1x
[host1x/vic] fix bad vectorization codegen in (windows) ( #3285 )
2026-01-10 09:58:28 +01:00
host_shaders
[cmake, tools] update CPMUtil and add support for CPMUtil bundled Qt, module updates, cleanups ( #3289 )
2026-01-14 19:29:13 +01:00
query_cache
[vk] Fix query cache leak on missed sync ( #131 )
2025-07-26 18:12:54 +02:00
renderer_null
nvnflinger/gpu: implement applet capture
2024-02-09 09:20:53 -05:00
renderer_opengl
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
2026-01-16 23:39:16 +01:00
renderer_vulkan
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
2026-01-16 23:39:16 +01:00
texture_cache
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
2026-01-16 23:39:16 +01:00
textures
[video_core] remove decoders.cpp template<A,B> spam (16 copies of the same function) ( #3263 )
2026-01-10 12:27:57 +01:00
vulkan_common
[vk, qcom] Memory, Samplers, BindingBuffers and UniformBufferAlignment set by hardware capabilities for QCOM. ( #3280 )
2026-01-11 05:31:23 +01: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
[common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) ( #351 )
2025-10-01 06:59:35 +02:00
cdma_pusher.h
Port changes from Early Access
2025-04-04 03:40:46 +02:00
CMakeLists.txt
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
2026-01-16 23:39:16 +01:00
compatible_formats.cpp
renderer_vulkan: Fix some missing view formats
2023-07-01 16:03:35 +03:00
compatible_formats.h
general: Convert source file copyright comments over to SPDX
2022-04-23 05:55:32 -04:00
delayed_destruction_ring.h
[VK] Rework SPIRV Shader Optimization ( #238 )
2025-07-03 01:13:33 +00:00
dirty_flags.cpp
Fix stencil func registers, make clip control equivalent to how it was before, but surely wrong.
2022-10-10 20:59:57 +01:00
dirty_flags.h
general: Convert source file copyright comments over to SPDX
2022-04-23 05:55:32 -04:00
dma_pusher.cpp
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
2026-01-16 23:39:16 +01:00
dma_pusher.h
[video_core] Improve DMA logic and add an option to sync memory operations ( #276 )
2025-08-20 00:21:25 +02:00
fence_manager.h
[video_core] Fix SignalFence and restore OpenGL rendering ( #3224 )
2025-12-31 01:17:24 +01:00
framebuffer_config.cpp
video_core: simplify accelerated surface fetch and crop handling between APIs
2024-01-31 11:27:20 -05:00
framebuffer_config.h
nvnflinger/gpu: implement blending
2024-02-09 09:20:53 -05: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
[settings, frontend] Reorganize graphics/CPU settings, saner defaults ( #3233 )
2025-12-30 18:03:09 +01:00
gpu.h
[vk, opengl] defer checks to topmost call (avoid unnecessary call) ( #40 )
2025-07-13 03:40:48 +02:00
gpu_thread.cpp
[video_core] Rework GPU Accuracy levels and remove Early Release Fences toggle ( #3129 )
2025-12-09 18:11:05 +01:00
gpu_thread.h
nvnflinger/gpu: implement layer stack composition
2024-01-31 11:27:21 -05:00
guest_memory.h
Core: Clang format and other small issues.
2024-01-18 21:12:30 -05:00
invalidation_accumulator.h
BufferBase: Don't ignore GPU pages.
2023-01-05 14:00:10 -05:00
macro.cpp
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
2026-01-16 23:39:16 +01:00
macro.h
[common, core] remove uneeded memory indirection overhead at startup ( #3306 )
2026-01-16 23:39:16 +01:00
memory_manager.cpp
[compat] Debian stable gcc12/clang14 compilation fixes ( #2763 )
2025-10-18 01:54:43 +02:00
memory_manager.h
[meta] fix license headers ( #2547 )
2025-09-21 21:58:59 +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: Implement memory manager page kind
2022-10-17 15:33:29 +08:00
query_cache.h
VideoCore: Move Slot Vector to Common
2024-02-04 20:01:47 +01: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
general: Silence -Wshadow{,-uncaptured-local} warnings
2023-07-18 19:31:35 -04:00
renderer_base.h
nvnflinger/gpu: implement applet capture
2024-02-09 09:20:53 -05:00
shader_cache.cpp
[compat] Debian stable gcc12/clang14 compilation fixes ( #2763 )
2025-10-18 01:54:43 +02:00
shader_cache.h
[compat] Debian stable gcc12/clang14 compilation fixes ( #2763 )
2025-10-18 01:54:43 +02:00
shader_environment.cpp
[am] Improve some error messages ( #2996 )
2025-11-10 23:32:50 +01:00
shader_environment.h
[meta] fix license headers ( #2547 )
2025-09-21 21:58:59 +02:00
shader_notify.cpp
general: Convert source file copyright comments over to SPDX
2022-04-23 05:55:32 -04:00
shader_notify.h
general: Convert source file copyright comments over to SPDX
2022-04-23 05:55:32 -04:00
smaa_area_tex.h
video_core: Integrate SMAA
2022-12-08 17:17:45 -05:00
smaa_search_tex.h
video_core: Integrate SMAA
2022-12-08 17:17:45 -05:00
surface.cpp
[vk] Exclude size equal alpha different copies from incompatible copy ( #138 )
2025-07-27 19:56:22 +02:00
surface.h
[vk, opengl] macro-ify PixelSurface and SurfaceFormat lists ( #3060 )
2025-12-30 21:30:34 +01:00
transform_feedback.cpp
[common] remove ranges polyfill ( #2546 )
2025-09-24 19:29:48 +02:00
transform_feedback.h
Remove memory allocations in some hot paths
2023-06-22 08:05:10 +01:00
video_core.cpp
Removed telemetry and anonymized SCM (git) strings
2025-04-04 03:40:47 +02:00
video_core.h
chore: make yuzu REUSE compliant
2022-07-27 12:53:49 +02:00