aboutsummaryrefslogtreecommitdiff
path: root/src/core/arm/nce/arm_nce.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [nce] handles duplicate NCE interrupts (#4530)xbzk9 days1-2/+2
| | | | | | | | | | | | | | | | | | | - [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. ------------------- Another crash observed in Ender Magnolia: A deadlock caused between CPUCore_0/GPU/GPUFencingThread. CPUCore_0 waits for GPU work inside the NCE fault handler GPU waits for the syncpoint mutex GPUFencingThread holds that mutex while waiting for CPUCore_0 NCE interrupt lock The fix makes duplicate interrupts return before acquiring the lock, while the first request keeps its original behavior. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4530 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
* [core/arm/nce] suppress unused variable warnings (#4002)lost-chaos2026-05-231-1/+1
| | | | | | | | Add `[[maybe_unused]]` to unused constants in the ARM NCE backend to suppress compiler warnings. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4002 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [nce] use correct process memory in fault handlers (#3391)Maufeat2026-01-271-3/+4
| | | | | | | | | | Lets you correctly play games in qlaunch on NCE Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3391 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: Maufeat <sahyno1996@gmail.com> Co-committed-by: Maufeat <sahyno1996@gmail.com>
* [FIXUP] Partially revert "[NCE] Fix cache invalidation and signal interrupt ↵Caio Oliveira2025-12-221-15/+2
| | | | | | | | | | | | | | race condition (#3063)" (#3190) * this fixes Jamboree and SSB This reverts commit e3c942b2092761c1f812f1eff086f437b843341a. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3190 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Co-committed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
* [NCE] Fix cache invalidation and signal interrupt race condition (#3063)MrPurple6662025-12-041-6/+21
| | | | | | | | | | | | | | | | Inspired by PR #3047 This should theoretically fix 3 bugs in NCE: - **Bug 1**: `ClearInstructionCache()` now properly invalidates L1 instruction cache using IC IALLU instead of only using memory barriers - **Bug 2**: `InvalidateCacheRange()` implements proper range-based cache invalidation instead of always flushing entire L1 cache - **Bug 3**: `SignalInterrupt()` adds acquire fence to guarantee memory visibility of the `is_running` flag, preventing lost signals Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3063 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Co-authored-by: MrPurple666 <antoniosacramento666usa@gmail.com> Co-committed-by: MrPurple666 <antoniosacramento666usa@gmail.com>
* [nce] remove software prefetching instances (#2857)lizzie2025-11-081-22/+0
| | | | | | | | | | | May be a complete hit or miss on performance with NCE Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2857 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [android] Legacy build flavor (#51)Bix2025-10-051-1/+1
| | | | | | | | | | | | | | This adds a "legacy" build flavor, similar to the genshinSpoof flavor. The legacy flavor uses a white icon bg, alongside building with `YUZU_LEGACY=ON`, which applies the previously-made SD865 patches iff that value is truthy. Co-authored-by: Bixthefin <114880614+Bixthefin@users.noreply.github.com> Co-authored-by: Calchan <denis.dupeyron@gmail.com> Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/51 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: Bix <bix@bixed.xyz> Co-committed-by: Bix <bix@bixed.xyz>
* revert [android] Snapdragon 865 patches (#23)CamilleLaVey2025-07-121-1/+1
| | | | | | | | | revert [android] Snapdragon 865 patches (#23) Co-authored-by: Aleksandr Popovich <alekpopo@pm.me> Reviewed-on: https://git.bixed.xyz/Bix/eden/pulls/23 Reverted due to heavy performance hits on Android with higher specifications, will be adjusted to be included in a specific build for older A6XX devices, as 855, 860, 865, 870, meanwhile it does fix critical issues with certain games crashing due to memory and VRAM usage, hits performance on SoC that can do it without this special flags.
* [android] Snapdragon 865 patches (#23)crueter2025-07-061-1/+1
| | | | | Co-authored-by: Aleksandr Popovich <alekpopo@pm.me> Reviewed-on: https://git.bixed.xyz/Bix/eden/pulls/23
* [VK] Rework SPIRV Shader Optimization (#238)Gamer642025-07-031-0/+3
| | | | | | | | The actual SPIRV Shader Optimization option doesn't seem to do anything as long as it isn't vinculed, so let's rework it to make it work Co-authored-by: Gamer64 <76565986+Gamer64ytb@users.noreply.github.com> Co-authored-by: echosys <echosys@noreply.localhost> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/238
* revert 91a662431cfe419bd46b6ca4ed298a4ba70d7820 (#240)CamilleLaVey2025-06-301-1/+1
| | | | | | | | | | | | | | | | | | revert [Texture_cache] Better memory handling for devices with lower memory allocations (#233) Means games like Minecraft Dungeons, Sea of Stars, Luigi Mansion 2, Astroneer, Alan Wake, etc are now playable. It also cleans up the recent abi.cpp and bindless texture commits a bit. Everything is in #ifdef ANDROID - The biggest change is CACHING_PAGEBITS = 12. Without that the way the buffercache grows and joins buffers can cause Android to run out of memory (as you end up with just one big buffer that needs to be copied every time it grows) Also patches up ffmpeg issues. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/233 Co-authored-by: JPikachu <jpikachu.eden@gmail.com> Co-committed-by: JPikachu <jpikachu.eden@gmail.com> Had showed some regressions on devices with higher specifications, will be refined to return as a toggle in a later commit. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/240
* [Texture_cache] Better memory handling for devices with lower memory ↵JPikachu2025-06-291-1/+1
| | | | | | | | | | | | | | allocations (#233) Means games like Minecraft Dungeons, Sea of Stars, Luigi Mansion 2, Astroneer, Alan Wake, etc are now playable. It also cleans up the recent abi.cpp and bindless texture commits a bit. Everything is in #ifdef ANDROID - The biggest change is CACHING_PAGEBITS = 12. Without that the way the buffercache grows and joins buffers can cause Android to run out of memory (as you end up with just one big buffer that needs to be copied every time it grows) Also patches up ffmpeg issues. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/233 Co-authored-by: JPikachu <jpikachu.eden@gmail.com> Co-committed-by: JPikachu <jpikachu.eden@gmail.com>
* WIP: DO-NOT-MERGE: NCE experiments: Fix build errorsMrPurple6662025-04-111-16/+16
|
* WIP: DO-NOT-MERGE: NCE experiments: Some optimizations on pre-fetch and cacheMrPurple6662025-04-111-2/+22
|
* WIP: DO-NOT-MERGE: NCE experiments: Ensure guest context reflects thread ↵MrPurple6662025-04-111-8/+6
| | | | state during unlock
* WIP: DO-NOT-MERGE: NCE experimentsMrPurple6662025-04-111-14/+38
| | | | botw boots but with poor performance
* nce: increase handler stack sizeLiam2023-12-191-1/+1
|
* nce: adjust initialization for repeated callsLiam2023-12-111-8/+11
|
* nce: implement instruction emulation for misaligned memory accessesLiam2023-12-101-30/+72
|
* core: refactor emulated cpu core activationLiam2023-12-041-160/+95
|
* core: Rename patcher fileGPUCode2023-11-291-1/+1
|
* arm_nce: skip data aborts for crash handling parityLiam2023-11-251-3/+11
|
* arm_nce: skip dc cvac on possibly write-protected areasLiam2023-11-251-3/+1
|
* Address some review commentsGPUCode2023-11-251-3/+2
|
* arm: Implement native code execution backendLiam2023-11-251-0/+395