aboutsummaryrefslogtreecommitdiff
path: root/src/tests/common
Commit message (Collapse)AuthorAgeFilesLines
* tests: cover room packet matching and size-checked ZSTD decompressioncirakg28 hours1-0/+59
| | | | Assisted-by: Claude Opus 5.5 (investigation and implementation)
* settings: default to ScaleForce and FXAAsnowstormxd32 hours1-0/+12
| | | | | | Include both filters in the accepted MKW preset and verify defaults and saved-preference overrides. Assisted by Codex.
* settings: restore the recommended MKW settings promptsnowstormxd32 hours1-0/+99
| | | | | | Apply accepted settings visibly and save them, then reapply after per-game configuration. Include handheld mode. Assisted by Codex.
* core: skip empty bitmap ranges during cache and scheduler traversalsnowstormxd34 hours1-0/+54
| | | | | | Adapted bitmap scans from sylvieistaken/selevet-eglantine performance build 4. Keep the wide-priority fallback and fix the first live slot after empty bitmap words. Include randomized lifecycle and ordering checks. Assisted by Codex.
* [common] Switch to boost::unordered_flat containers (#4326)crueter2026-08-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [tests] Require backing base pointer to be nonnull for HostMemory tests (#4138)lizzie2026-06-281-2/+27
| | | | | | | | | | 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>
* [common/logging] Simplify logging logic and fix issues when logging before ↵lizzie2026-03-121-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* [*] change all std::unordered_map and std::unordered_set into ↵lizzie2026-02-101-2/+5
| | | | | | | | | | | | | | | | | | | 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>
* [tests] fix compile+linking issues with PlayTime (#3345)lizzie2026-01-191-0/+14
| | | | | | | | | | | | | 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>
* [cmake] allow static MinGW/macOS builds; fix clangarm64 (#2994)crueter2025-11-111-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Implemented rewindless Fiber without Boost (using minicoro)darktux2025-04-041-39/+0
|
* core: track separate heap allocation for linuxLiam2023-12-251-49/+50
|
* core: Respect memory permissions in MapGPUCode2023-11-251-35/+36
|
* general: fix build failure on clang 17Liam2023-10-171-3/+3
|
* msvc: set warning level to /W4 globallyDanila Malyutin2023-09-031-1/+1
| | | | And fix a bunch of warnings
* Fixes 'Continous' typoMax Dunbar2023-03-291-10/+10
|
* tests: mark integer literals as unsignedLiam2023-03-261-17/+20
|
* tests: Implement tests for verifying HashValueMorph2023-03-251-0/+41
| | | | Values were randomly generated and the verification was done against boost 1.79.
* general: fix spelling mistakesLiam2023-03-122-2/+2
|
* tests: update catch2 to 3.0.1Alexandre Bouvier2023-01-059-9/+9
|
* MacroHLE: Reduce massive calculations on sizing estimation.Fernando Sahmkow2023-01-011-0/+70
|
* tests: add missing headerAlexandre Bouvier2022-12-261-0/+1
| | | <cstring> is needed for std::memcpy
* scratch_buffer: Explicitly defing resize and resize_destructive functionsameerj2022-12-191-3/+75
| | | | | resize keeps previous data intact when the buffer grows resize_destructive destroys the previous data when the buffer grows
* tests: Add ScratchBuffer testsameerj2022-12-191-0/+127
|
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-272-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f
* common/fiber: make fibers easier to useLiam2022-07-021-88/+35
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-235-15/+10
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* logging: Simplify and make thread-safeyzct123452021-08-131-0/+2
| | | | | | | | | This simplifies the logging system. This also fixes some lost messages on startup. The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation. With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things.
* shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq2021-07-221-0/+2
| | | | | | | | | | | | | | | | | Mostly fixing unused *, implicit conversion, braced scalar init, fpermissive, and some others. Some Clang errors likely remain in video_core, and std::ranges is still a pertinent issue in shader_recompiler shader_recompiler: cmake: Force bracket depth to 1024 on Clang Increases the maximum fold expression depth thread_worker: Include condition_variable Don't use list initializers in control flow Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
* common: Add unique functionReinUsesLisp2021-07-081-0/+108
|
* common: Replace common_sizes into user-literalsWunkolo2021-06-241-1/+3
| | | | | | | | | | | | | Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals.
* tests: Add tests for host memoryReinUsesLisp2021-06-111-0/+183
|
* common: Fiber: use a reference for YieldTo.bunnei2021-03-071-14/+14
| | | | - Fixes another small leak.
* Revert "core: Switch to unique_ptr for usage of Common::Fiber."bunnei2021-03-051-18/+21
|
* core: Switch to unique_ptr for usage of Common::Fiber.bunnei2021-02-271-21/+18
| | | | | - With using unique_ptr instead of shared_ptr, we have more explicit ownership of the context. - Fixes a memory leak due to circular reference of the shared pointer.
* common/cityhash: Use common typesReinUsesLisp2021-02-181-2/+2
| | | | | | | | Allow sharing return types with the rest of the code base. For example, we use 'u128 = std::array<u64, 2>', meanwhile Google's code uses 'uint128 = std::pair<u64, u64>'. While we are at it, use size_t instead of std::size_t.
* tests: Add tests for CityHashReinUsesLisp2021-02-181-0/+22
|
* ring_buffer: Remove granularity template argumentMerryMage2021-02-061-5/+5
| | | | | | Non-obvious bug in RingBuffer::Push(std::vector<T>&) when granularity != 1 Just remove it altogether because we do not have a use for granularity != 1
* common/bit_util: Replace CLZ/CTZ operations with standardized onesLioncash2021-01-151-23/+0
| | | | Makes for less code that we need to maintain.
* tests/ring_buffer: Silence signed/unsigned mismatch warningsReinUsesLisp2021-01-081-15/+15
|
* general: Fix various spelling errorsMorph2021-01-021-2/+2
|
* hle: kernel: Separate KScheduler from GlobalSchedulerContext class.bunnei2020-12-061-55/+0
|
* tests: Fix warning about comparison between signed and unsignedcomex2020-11-271-2/+2
|
* tests: Fix data race in fibers testReinUsesLisp2020-10-281-31/+40
| | | | | | | | | | | | | | | | | | | Previous to this commit, the tests were using operator[] from unordered_map to query elements but this silently inserts empty elements when they don't exist. If all threads were executed without concurrency, this wouldn't be an issue, but the same unordered_map could be written from two threads at the same time. This is a data race and makes some previously inserted elements invisible for a short period of time, causing them to insert and return an empty element. This default constructed element (a zero) was used to index an array of fibers that asserted when one of them was nullptr, shutting the test session off. To address this issue, lock on thread id reads and writes. This could be a shared mutex to allow concurrent reads, but the definition of std::this_thread::get_id is fuzzy when using non-standard techniques like fibers. I opted to use a standard mutex. While we are at it, fix the included headers.
* Core/Common: Address Feedback.Fernando Sahmkow2020-06-271-1/+1
|
* Common/Fiber: Implement Rewinding.Fernando Sahmkow2020-06-181-0/+46
|
* Common/Tests: Address FeedbackFernando Sahmkow2020-06-181-10/+10
|
* Common/Tests: Clang Format.Fernando Sahmkow2020-06-181-9/+14
|
* Common: Polish Fiber class, add comments, asserts and more tests.Fernando Sahmkow2020-06-181-1/+94
|
* Tests: Add tests for fibers and refactor/fix Fiber classFernando Sahmkow2020-06-181-0/+214
|