aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/physical_core.h
Commit message (Collapse)AuthorAgeFilesLines
* Performance diagnostics and small wins for title 1Takoroka6 days1-1/+2
| | | | | | | | | | | | | | | | | | - eden-cli: SDL called SDL_AppIterate back to back, keeping a host core at 100% polling input; run the main callbacks at 240 Hz. - EDEN_NX2_IDLE_SPIN_US: optional spin before an idle core blocks (measured: no gain on title 1, so off by default). - EDEN_NX2_SVC_TRACE=<first>:<last>: trace SVCs (with thread ids) for a range of presents only. - MME DMA reads flush GPU-written memory first (never triggered on title 1, kept for correctness); render-enable override histogram instead of the first-400 log. Measured on title 1's title screen (RTX 4070 Laptop): GPU ~20% busy, the six emulated cores ~0.9 host cores in total, Eden's GPU thread 45-70% busy and largely waiting: on host fences for semaphore acquires (GPU accuracy High delays every release to host completion), on ASTC upload Finish(), and in a 1 ms poll sleep. gpu_accuracy=Low: ~12.5 -> ~16 fps.
* [video_core, hle] remove redundant parent references in system structs (#3908)lizzie2026-06-231-4/+5
| | | | | | | | | | reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev>
* core: refactor emulated cpu core activationLiam2023-12-041-32/+25
|
* kernel: convert miscellaneousLiam2023-03-121-22/+14
|
* kernel: fix compilation with older gccLiam2023-02-061-0/+1
|
* kernel/physical_core: Ensure is_interrupted is always initializedLioncash2022-12-051-1/+1
|
* kernel: unlayer CPU interrupt handlingLiam2022-07-251-10/+7
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | 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.
* hle: kernel: Use std::mutex instead of spin locks for most kernel locking.bunnei2022-04-111-5/+2
|
* core: Remove unused includesameerj2021-11-031-1/+0
|
* core: Make variable shadowing a compile-time errorLioncash2021-05-161-2/+2
| | | | | | Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
* Merge pull request #5131 from bunnei/scheduler-rewritebunnei2020-12-201-8/+5
|\ | | | | Rewrite Kernel scheduler based on Atmosphere
| * hle: kernel: Rewrite scheduler implementation based on Mesopshere.bunnei2020-12-061-8/+5
| |
* | Fix "explicitly defaulted but implicitly deleted" warningcomex2020-12-061-1/+1
|/ | | | | | | | | | `PhysicalCore`'s move assignment operator was declared as `= default`, but was implicitly deleted because `PhysicalCore` has fields of reference type. Switch to explicitly deleting it to avoid a Clang warning. The move *constructor* is still defaulted, and is required to exist due to the use of `std::vector<PhysicalCore>`.
* core: arm: Implement InvalidateCacheRange for CPU cache invalidation.bunnei2020-11-291-0/+4
|
* hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.bunnei2020-11-291-5/+24
|
* Revert "core: Fix clang build"bunnei2020-10-201-1/+1
|
* core: Fix clang buildLioncash2020-10-171-1/+1
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* Core/Common: Address Feedback.Fernando Sahmkow2020-06-271-5/+2
|
* Clang Format.Fernando Sahmkow2020-06-271-4/+3
|
* General: Move ARM_Interface into Threads.Fernando Sahmkow2020-06-271-30/+7
|
* Core: Refactor ARM Interface.Fernando Sahmkow2020-06-271-6/+8
|
* CPU_Manager: Reconfigre guest threads for dynamrmic downsidesFernando Sahmkow2020-06-271-0/+2
|
* General: Recover Prometheus project from harddrive failure Fernando Sahmkow2020-06-271-0/+21
| | | | | | | This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
* core: Implement separate A32/A64 ARM interfaces.bunnei2020-03-021-1/+5
|
* kernel/physical_core: Make use of std::unique_ptrLioncash2020-01-301-2/+8
| | | | | | | | | | | | | | | | | | shared_ptr was used in 8eb175481c7434c31e92b7cbc38ad3e881c33f3b due to a misunderstanding of how the language generates move constructors and move assignment operators. If a destructor is user-provided, then the compiler won't generate the move constructor and move assignment operators by default--they must be explicitly opted into. The reason for the compilation errors is due to the fact that the language will fall back to attempting to use the copy constructor/copy assignment operators if the respective move constructor or move assignment operator is unavailable. Given that we explicitly opt into them now, the the move constructor and move assignment operators will be generated as expected.
* kernel/physical_core: Remove unused kernel reference member variableLioncash2020-01-301-4/+1
| | | | | | | This isn't used within the class, so it can be removed to simplify the overall interface. While we're in the same area, we can simplify a unique_ptr reset() call.
* System: Address FeedbackFernando Sahmkow2020-01-271-3/+9
|
* Core: Refactor CPU Management.Fernando Sahmkow2020-01-251-8/+14
| | | | This commit moves ARM Interface and Scheduler handling into the kernel.
* Kernel: Implement Physical Core.Fernando Sahmkow2020-01-241-0/+62