FearlessTobi
310c1f50be
scope_exit: Make constexpr
...
Allows the use of the macro in constexpr-contexts.
Also avoids some potential problems when nesting braces inside it.
2024-02-19 16:00:46 +01:00
Liam
45c87c7e6e
core: refactor emulated cpu core activation
2023-12-04 10:37:16 -05:00
Liam
9f91ba1f73
arm: Implement native code execution backend
2023-11-25 00:46:47 -05:00
Morph
3053a62375
core: Promote CPU/GPU threads to time critical
...
And also demote Audren and CoreTiming to High thread priority.
2023-03-07 21:17:46 -05:00
Liam
9704acb982
general: improve handling of system startup failure
2022-12-06 16:13:42 -05:00
Liam
35d3e7db2a
common: remove "yuzu:" prefix from thread names
2022-10-03 18:43:56 -04:00
Liam
da07e13e07
kernel: fix single-core preemption points
2022-07-14 22:47:18 -04:00
Liam
21945ae127
kernel: fix issues with single core mode
2022-07-14 22:47:18 -04:00
Liam
0624c880bd
kernel: use KScheduler from mesosphere
2022-07-14 22:47:18 -04:00
liamwhite
07e3c56f0d
Merge pull request #8532 from liamwhite/fiber-supplements
...
common/fiber: make fibers easier to use
2022-07-05 18:20:39 -04:00
Liam
ed0319cfed
common/fiber: make fibers easier to use
2022-07-02 12:33:49 -04:00
Liam
2c1e2c63c3
cpu_manager: properly check idle on return from preemption
2022-06-30 16:54:05 -04:00
Liam
2c56e94702
kernel: make current thread pointer thread local
2022-06-23 00:28:00 -04:00
Liam
a6371fb69d
core: fix initialization in single core, sync GPU mode
2022-06-16 23:43:35 -04:00
Fernando S
f86b770ff7
Merge pull request #8457 from liamwhite/kprocess-suspend
...
kernel: implement KProcess suspension
2022-06-16 02:41:12 +02:00
Liam
20eab9fed9
core: centralize profile scope for Dynarmic
2022-06-14 18:19:04 -04:00
Liam
888f499188
kernel: implement KProcess suspension
2022-06-14 10:04:11 -04:00
Liam
af022294dd
CpuManager: simplify pausing
2022-06-08 21:47:29 -04:00
Morph
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
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.
2022-04-23 05:55:32 -04:00
bunnei
3dc803a430
core: hle: kernel: Disable dispatch count tracking on single core.
...
- This would have limited value, and would be a mess to handle properly.
2021-12-06 16:39:17 -08:00
bunnei
08c63d5c75
core: cpu_manager: Use invalid core_id on init and simplify shutdown.
2021-12-06 16:39:17 -08:00
bunnei
d604edfedf
core: cpu_manager: Use KScopedDisableDispatch.
2021-12-06 16:39:16 -08:00
ameerj
7c4b6aab2e
core: Remove unused includes
2021-11-03 21:42:57 -04:00
bunnei
25a97e0139
core: cpu_manager: Use jthread.
2021-09-03 19:05:41 -07:00
bunnei
0c8594b225
Revert "kernel: Various improvements to scheduler"
2021-08-25 20:59:28 -07:00
bunnei
aef0ca6f0d
core: hle: kernel: Disable dispatch count tracking on single core.
...
- This would have limited value, and would be a mess to handle properly.
2021-08-14 02:14:19 -07:00
bunnei
9e3d1d865c
core: cpu_manager: Use invalid core_id on init and simplify shutdown.
2021-08-07 12:33:07 -07:00
bunnei
cbe4e32d38
core: cpu_manager: Use KScopedDisableDispatch.
2021-08-07 12:18:47 -07:00
bunnei
5ea0d3629a
core: cpu_manager: Use jthread.
2021-08-07 12:18:47 -07:00
Lioncash
9a07ed53eb
core: Make variable shadowing a compile-time error
...
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.
2021-05-16 03:43:16 -04:00
bunnei
8f7eb194af
common: Fiber: use a reference for YieldTo.
...
- Fixes another small leak.
2021-03-07 13:46:53 -08:00
bunnei
a5ab85ac37
Revert "core: Switch to unique_ptr for usage of Common::Fiber."
2021-03-05 17:08:17 -08:00
bunnei
51fb0a6f96
core: Switch to unique_ptr for usage of Common::Fiber.
...
- 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.
2021-02-27 11:56:04 -08:00
bunnei
89a5ae92bd
core: cpu_manager: Remove unused variable.
2021-01-28 21:42:26 -08:00
bunnei
cdd14b03e5
hle: kernel: Recode implementation of KThread to be more accurate.
2021-01-28 21:42:26 -08:00
bunnei
4782985013
hle: kernel: Move single core "phantom mode" out of KThread.
...
- This is a workaround that does not belong in a kernel primitive.
2021-01-28 21:42:25 -08:00
bunnei
eea346ba8e
hle: kernel: KThread: Remove thread types that do not exist.
2021-01-28 21:42:25 -08:00
bunnei
c0d3aef28c
core: hle: kernel: Rename Thread to KThread.
2021-01-28 21:42:25 -08:00
bunnei
d4ae0ae0e9
core: cpu_manager: Fix a typo in PreemptSingleCore, which broke many games.
...
- We were reload'ing the old current scheduler, which may have changed.
2020-12-06 00:27:13 -08:00
bunnei
9e29e36a78
hle: kernel: Rewrite scheduler implementation based on Mesopshere.
2020-12-06 00:03:24 -08:00
bunnei
7b642c7781
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
2020-11-29 01:31:51 -08:00
Lioncash
5bc4eabe36
core: Eliminate remaining usages of the global system instance
...
Removes all remaining usages of the global system instance. After this,
migration can begin to migrate to being constructed and managed entirely
by the various frontends.
2020-11-27 11:40:45 -05:00
bunnei
3359e5ab70
core: cpu_manager: Fix shutdown crash when closing before emulation starts.
2020-11-24 15:25:39 -08:00
bunnei
54aabb00b0
core: cpu_manager: Add missing call to MicroProfileOnThreadExit().
...
- Fixes an occasional crash when trying to launch subsequent games.
2020-10-26 16:09:15 -07:00
LC
b5ed2d408c
Merge pull request #4461 from comex/thread-names
...
Fix thread naming on Linux, which limits names to 15 bytes.
2020-08-31 15:31:48 -04:00
Lioncash
544fbd5c84
cpu_manager: Make use of ranged for where applicable
...
We can simplify a few loops by making use of ranged for.
2020-08-22 22:43:19 -04:00
comex
d37f0b29e2
Fix thread naming on Linux, which limits names to 15 bytes.
...
- In `SetCurrentThreadName`, when on Linux, truncate to 15 bytes, as (at
least on glibc) `pthread_set_name_np` will otherwise return `ERANGE` and
do nothing.
- Also, add logging in case `pthread_set_name_np` returns an error
anyway. This is Linux-specific, as the Apple and BSD versions of
`pthread_set_name_np return `void`.
- Change the name for CPU threads in multi-core mode from
"yuzu:CoreCPUThread_N" (19 bytes) to "yuzu:CPUCore_N" (14 bytes) so it
fits into the Linux limit. Some other thread names are also cut off,
but I didn't bother addressing them as you can guess them from the
truncated versions. For a CPU thread, truncation means you can't see
which core it is!
2020-08-05 20:34:49 -07:00
Lioncash
989ad52dc1
cpu_manager: Remove redundant std::function declarations
...
We can just return the function directly. Making for less reading.
2020-07-27 21:57:05 -04:00
Fernando Sahmkow
528b19a842
General: Tune the priority of main emulation threads so they have higher priority than less important helper threads.
2020-06-27 11:36:09 -04:00
Fernando Sahmkow
ad92865497
General: Correct rebase, sync gpu and context management.
2020-06-27 11:36:08 -04:00