lizzie
d511b11c50
fixup tests
2026-09-03 01:54:18 +00:00
lizzie
facf8fdf57
[net] refactor to remove uneeded abstraction layer
...
Signed-off-by: lizzie <lizzie@eden-emu.dev >
2026-09-03 01:54:18 +00:00
crueter
7fda6dde73
[common] Switch to boost::unordered_flat containers ( #4326 )
...
Replaces all instances of ankerl's unordered map/set with boost's
`unordered_flat_*` classes. This uses std::hash since boost::hash is
actually a lot slower.
Also adds an abstraction layer in `Common` so future changes are quicker
and easier.
Other implementation details:
- ankerl provided hash specializations for tuple and pair, so those were
ported here
- std::erase_if doesn't work on boost, so just used the ADL'd erase_if
This should be about equal or superior performance as unordered_dense for everything except iteration.
Signed-off-by: crueter <crueter@eden-emu.dev >
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions ).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md )
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md ) to the best of my ability.
-------------------
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4326
Reviewed-by: Lizzie and Samuel <lizzie@eden-emu.dev >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
2026-08-31 02:58:09 +02:00
lizzie
09c583506b
[tests] Require backing base pointer to be nonnull for HostMemory tests ( #4138 )
...
A basic requirement, probably more helpful than outright crashing in the middle of a test.
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4138
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
2026-06-28 08:01:41 +02:00
lizzie
9cb7001656
[cmake] fixes for XCode when having languages other than C/C++ ( #3772 )
...
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3772
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-03-26 04:46:43 +01:00
lizzie
395613b01f
[common/logging] Simplify logging logic and fix issues when logging before system is created ( #3688 )
...
- our logging code was bigger than spdlog itself, why???? just keep it simple
- fix issues when logging before logging system is even started
- removes the "initialized logging twice" issue
- removes uneeded indirection in file logging
- uses direct formatting instead of jumping hoopla-around the fmt::format() ressult
- code duplication and dead code removal as usual
I did explore dup2() but I think it's not worth the hassle
I did try `fwopen()` but it's better if things are just kept as-is.
there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file
now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688
Reviewed-by: crueter <crueter@eden-emu.dev >
Reviewed-by: DraVee <chimera@dravee.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-03-12 18:29:15 +01:00
lizzie
19494bc7ac
[network, qt] use jthread and use std::vector for packet list instead of std::list ( #254 )
...
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/254
Reviewed-by: DraVee <dravee@eden-emu.dev >
Reviewed-by: Maufeat <sahyno1996@gmail.com >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-02-11 03:00:15 +01:00
lizzie
a8093c2a3c
[*] change all std::unordered_map and std::unordered_set into ankerl::unordered_dense::map/set variants ( #3442 )
...
mainly doing this to reduce memory footprint; we all know how nice ankerl::unordered_dense is
in theory 4x faster - in practice these maps arent that "hot" anyways so not likely to have much perf gained
i just want to reduce mem fragmentation to ease my porting process, plus it helps other platforms as well (ahem weak Mediatek devices) :)
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3442
Reviewed-by: DraVee <dravee@eden-emu.dev >
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-02-10 03:34:07 +01:00
lizzie
b9da45cb1f
[tests] fix compile+linking issues with PlayTime ( #3345 )
...
fixes linking + comp issues but not the test themselves, who have now became invalid
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Co-authored-by: DraVee <caiooliveirafarias0@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3345
Reviewed-by: DraVee <dravee@eden-emu.dev >
Reviewed-by: Maufeat <sahyno1996@gmail.com >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2026-01-19 16:27:18 +01:00
CamilleLaVey
1a9b4b37e1
[buffer_cache] Add batching support for memory tracker updates ( #3288 )
...
I added a batching/ coalescing of ranges in WordManager to reduce calls per pages in UpdatePagesCachedCount, also a test to verify if FlushCachedWrites coalesced (reduces callings to UpdatePagesCachedCount) callings and register each of them to inspect them.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3288
Reviewed-by: Maufeat <sahyno1996@gmail.com >
Reviewed-by: DraVee <dravee@eden-emu.dev >
Co-authored-by: CamilleLaVey <camillelavey99@gmail.com >
Co-committed-by: CamilleLaVey <camillelavey99@gmail.com >
2026-01-18 03:48:09 +01:00
crueter
7ca657d22f
[cmake] allow static MinGW/macOS builds; fix clangarm64 ( #2994 )
...
Requires qt6-static, obviously... at least for eden. eden-cli also can
be built fully static
Notable challenges n such:
1. VkMemAlloc conflicts with Qt, since it embeds vk_mem_alloc.h in
qrhivulkan; we can get around this by conditionally defining
VMA_IMPLEMENTATION; that is, define it in the SDL2 frontend and undef
it in the Qt frontend. It's not ideal, but I mean... it works, no?
2. find_library, pkgconfig, and some Config modules will always look for
a .dll, so we have to tell CMake to look for .a
3. In spite of this, some will end up using .dll.a (implib) as their
link targets; this is, well, bad, so we create a find_library hook
that rejects dll.a
4. Some libraries have specific configs (boost lol)
5. Some libraries use _static targets (zstd, mbedtls)
6. Some extra libraries need to be linked, i.e. jbig, lzma, etc
7. QuaZip is sad
Needs testing on all platforms, and for both frontends on desktop, to
ensure Vulkan still works as expected.
(also: CI). Resulting executables are:
- 71MB for eden.exe
- 39MB for eden-cli.exe
Considering the entire libicudt is included (thanks Qt), that's a great size all things considered. No need to bundle all those plugins and translation files too.
Theoretically, this lays the groundwork towards fully static executables for other platforms too; though Linux doesn't have a huge benefit since AppImages are needed regardless. eden-room though maybe?
Fixes comp for clangarm64 because -msse4.1
Also allows macOS to build with qt6-static. macOS can't build static executables, but with these changes it ONLY relies on system libraries like libc and frameworks. So in theory we don't even need macdeployqt.
Signed-off-by: crueter <crueter@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2994
2025-11-11 06:22:33 +01:00
Caio Oliveira
8fa36a7737
nuke: Goodbye PCH, you will not be missed ( #2821 )
...
Signed-off-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2821
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
Co-committed-by: Caio Oliveira <caiooliveirafarias0@gmail.com >
2025-10-27 20:50:16 +01:00
lizzie
f55e560ac5
[compat] Debian stable gcc12/clang14 compilation fixes ( #2763 )
...
Mainly because - while we can just give out an AppImage and call it a day - building natively should be an option for all major distros.
And "base" stable debian doesn't provide a new enough g++/clang++ so... we need to make some "fixups".
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2763
Reviewed-by: crueter <crueter@eden-emu.dev >
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-10-18 01:54:43 +02:00
crueter
1a13e79c3d
[cmake] fix video_core and tests comp errors on Windows ( #2631 )
...
did not link to video_core thus did not properly propagate the GPUOpen
target thus failed to find vk_mem_alloc
also msvc sucks
Signed-off-by: crueter <crueter@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2631
Reviewed-by: MaranBr <maranbr@eden-emu.dev >
2025-10-05 00:00:52 +02:00
crueter
21cd44ec04
[dynarmic] jit fix branch v2 ( #203 )
...
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/203
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev >
2025-08-27 06:49:50 +02:00
xbzk
03794d4773
feature/landscape-carousel ( #196 )
...
second try. all known visual resizing bugs fixed.
Co-authored-by: Allison Cunha <allisonbzk@gmail.com >
Co-authored-by: crueter <swurl@swurl.xyz >
Co-authored-by: Aleksandr Popovich <alekpopo@pm.me >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/196
Co-authored-by: xbzk <xbzk@noreply.localhost >
Co-committed-by: xbzk <xbzk@noreply.localhost >
2025-06-26 20:52:54 +00:00
Aleksandr Popovich
6aeba9de66
[vk] Add some dynamic handling in the pipeline ( #142 )
...
Co-authored-by: crueter <swurl@swurl.xyz >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/142
Co-authored-by: Aleksandr Popovich <alekpopo@pm.me >
Co-committed-by: Aleksandr Popovich <alekpopo@pm.me >
2025-06-16 22:36:30 +00:00
darktux
16f92e5b32
Implemented rewindless Fiber without Boost (using minicoro)
2025-04-04 03:40:47 +02:00
Briar
bd844d2830
Fix windows boost compilation errors
2025-04-04 03:23:32 +02:00
liamwhite
0ab550c726
Merge pull request #12499 from Kelebek1/time
...
Rework time services
2024-01-25 14:19:01 -05:00
Kelebek1
52c35521bd
Rework time service to fix time passing offline.
2024-01-24 04:26:55 +00:00
Fernando Sahmkow
241c64e43b
Core: Eliminate core/memory dependancies.
2024-01-18 21:12:30 -05:00
Narr the Reg
7a478d7b9a
Merge pull request #12454 from liamwhite/ct-stuff
...
core_timing: minor refactors
2024-01-01 13:56:31 -06:00
Liam
c366d8e8d9
core: track separate heap allocation for linux
2023-12-25 23:30:56 -05:00
Liam
b9545c5a0e
core_timing: remove user data value
2023-12-23 15:36:44 -05:00
liamwhite
4504ee7f28
Revert "video_core: use interval map for page count tracking"
2023-12-17 18:59:49 -05:00
Liam
7fa76caf80
video_core: use interval map for page count tracking
2023-12-14 21:54:36 -05:00
GPUCode
2590906d14
core: Respect memory permissions in Map
2023-11-25 00:46:15 -05:00
Liam
181e5dbc5b
general: fix build failure on clang 17
2023-10-17 22:44:21 -04:00
Danila Malyutin
7f0de0f204
msvc: set warning level to /W4 globally
...
And fix a bunch of warnings
2023-09-03 18:42:10 +04:00
Fernando Sahmkow
1a2ed85a28
Buffer cache: always use async buffer downloads and fix regression.
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
bd8abfe654
BufferCache: Fixes and address feedback
2023-05-01 11:43:26 +02:00
Fernando Sahmkow
b328059505
Tests: Add memory tracker tests.
2023-04-29 00:46:31 +02:00
Max Dunbar
8b5becf71b
Fixes 'Continous' typo
2023-03-29 19:26:12 -07:00
Liam
e135d0448e
tests: mark integer literals as unsigned
2023-03-26 15:39:07 -04:00
Morph
ac1a23fc51
tests: Implement tests for verifying HashValue
...
Values were randomly generated and the verification was done against boost 1.79.
2023-03-25 23:52:26 -04:00
Liam
5be8a74b0c
general: fix spelling mistakes
2023-03-12 11:33:01 -04:00
ameerj
c5f3db8235
buffer_base: Partially revert changes from #9559
...
This fixes a regression where Yoshi's Crafted World (and potentially other titles) would enter an infinite loop when GPU Accuracy was set to "Normal"
2023-02-08 19:37:23 -05:00
liamwhite
ef4b11726f
Merge pull request #9555 from abouvier/catch2-update
...
tests: update catch2 to 3.0.1
2023-01-22 18:22:47 -05:00
Fernando Sahmkow
d777ec15f8
BufferBase: Don't ignore GPU pages.
2023-01-05 14:00:10 -05:00
Alexandre Bouvier
5c2cf39455
tests: update catch2 to 3.0.1
2023-01-05 04:58:31 +01:00
Fernando Sahmkow
12a76465b9
MacroHLE: Reduce massive calculations on sizing estimation.
2023-01-01 16:43:57 -05:00
Alexandre Bouvier
8cb4e6b641
tests: add missing header
...
<cstring> is needed for std::memcpy
2022-12-26 04:26:31 +00:00
ameerj
4d5adfb3c9
scratch_buffer: Explicitly defing resize and resize_destructive functions
...
resize keeps previous data intact when the buffer grows
resize_destructive destroys the previous data when the buffer grows
2022-12-19 22:40:50 -05:00
ameerj
37ac7d7841
tests: Add ScratchBuffer tests
2022-12-19 18:08:04 -05:00
ameerj
fb155dbffc
CMake: Consolidate common PCH headers
2022-11-30 18:30:30 -05:00
ameerj
bbf3e7f313
CMake: Use precompiled headers
2022-11-29 18:50:49 -05:00
Alexandre Bouvier
8dbd9adb4a
tests: fix for -Wall
...
Fix #9123
2022-10-25 15:20:23 +00:00
bunnei
a35c884097
core: Partially persist emulation state across game boots.
2022-10-18 19:13:35 -07:00
Kyle Kienapfel
ea00332a67
code: dodge PAGE_SIZE #define
...
Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number
This is great except in yuzu we're using PAGE_SIZE as a variable
Specific example
`static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;`
PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables.
Simply deleted the underscores, and then added YUZU_ prefix
Might be worth noting that there are multiple uses in different classes/namespaces
This list may not be exhaustive
Core::Memory 12 bits (4096)
QueryCacheBase 12 bits
ShaderCache 14 bits (16384)
TextureCache 20 bits (1048576, or 1MB)
Fixes #8779
2022-08-19 16:08:40 -07:00