aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle
AgeCommit message (Collapse)Author
2022-01-14hle: kernel: Fix service_threads access to be thread safe V2.bunnei
- PR #7699 attempted to fix CreateServiceThread and ReleaseServiceThread to be thread safe, but inadvertently introduced a possible dead-lock. - With this PR, we use a worker thread to manage the service thread list, allowing it only to be accessed by a single thread, and guaranteeing threads will not destroy themselves. - Fixes a rare crash in Pokemon Sword/Shield, I've now run this game for ~12 hours non-stop and am quite confident this is a good solution for this issue.
2022-01-14Merge pull request #7699 from bunnei/fix-service-thread-raceMai M
hle: kernel: Fix service_threads access to be thread safe.
2022-01-13hle: kernel: Fix service_threads access to be thread safe.bunnei
- CreateServiceThread and ReleaseServiceThread can be accessed by different threads, uses a lock to make this thread safe. - Fixes a rare crash in Pokemon Sword/Shield that can occur when a new service thread is being created while an old one is being destroyed.
2022-01-11hle: kernel: k_page_table: Update SetProcessMemoryPermission.bunnei
2022-01-11hle: service: ldr: UnmapCodeMemory BSS only when set.bunnei
2022-01-11hle: kernel: k_page_table: ReadAndWrite -> UserReadWrite.bunnei
2022-01-11hle: kernel: k_page_table: Rename *ProcessCodeMemory -> *CodeMemory.bunnei
2022-01-08core: hle: kernel: svc: Updates to SetMemoryAttribute and SetMemoryPermission.bunnei
2022-01-08core: hle: kernel: k_page_table: Update CheckMemoryState.bunnei
2022-01-04Merge pull request #7636 from vonchenplus/buffer_queue_querybunnei
core:hle:service:nvflinger Implement few type in bufferqueue query method
2022-01-03Revert "Merge pull request #7668 from ameerj/fence-stop-token"ameerj
This reverts commit e7733544779f2706d108682dd027d44e7fa5ff4b, reversing changes made to abbbdc2bc027ed7af236625ae8427a46df63f7e7.
2022-01-03gpu: Use std::stop_token in WaitFence for VSync threadameerj
Fixes a hang that may occur when stopping emulation and the VSync thread is blocked on the syncpoint condition variable.
2021-12-30core: hle: kernel: Implement thread pinning.bunnei
- We largely had the mechanics in place for thread pinning, this change hooks these up. - Validated with tests https://github.com/Atmosphere-NX/Atmosphere/blob/master/tests/TestSvc/source/test_thread_pinning.cpp.
2021-12-28Remove invalid assertion statementFeng Chen
2021-12-28Implement few type in bufferqueue query methodFeng Chen
2021-12-28core: hle: kernel: Updated implementation of svcSetHeapSize.bunnei
- Updates our svcSetHeapSize with latest HOS, furthermore allowing heap size to properly be extended/shrunk. - Validated with tests https://github.com/Atmosphere-NX/Atmosphere/blob/master/tests/TestSvc/source/test_set_heap_size.cpp.
2021-12-27Merge pull request #7621 from bunnei/set-mem-permbunnei
core: hle: kernel: Implement SetMemoryPermission.
2021-12-23core: hle: kernel: Implement SetMemoryPermission.bunnei
- Not seen in any games yet, but validated with kernel tests.
2021-12-23 core: hle: kernel: KThread: X18 should be a cryptographically random number.bunnei
- This was added with firmware 11.0.0 (https://switchbrew.org/wiki/11.0.0). - X18 is OR'd by kernel with 1, to make sure it is odd.
2021-12-21hle: kernel: svc: GetInfo: Fix error checking with IdleTickCount.bunnei
- Enforce tha the supplied handle is invalid, not valid. - This gets Witcher 3 booting.
2021-12-21Merge pull request #7481 from german77/gyro-biasbunnei
service/hid: Improve console motion accuracy
2021-12-20Merge pull request #7597 from bunnei/remove-global-lockbunnei
core: hle: Remove global HLE lock.
2021-12-19kernel: Manually destroy the current process during shut downameerj
Avoids a memory leak.
2021-12-17core: hle: Remove global HLE lock.bunnei
- This was added early on as a hack to protect against some concurrency issues. - It's not clear that this serves any purpose anymore, and if it does, individual components should be fixed rather than using a global recursive mutex.
2021-12-16core/hid: Cancel any vibration after the testNarr the Reg
2021-12-13Remove erroneous #pragma onceValeri
2021-12-12Merge pull request #7462 from bunnei/kernel-improve-schedulingbunnei
Kernel: Improve threading & scheduling V3
2021-12-12service/hid: Improve console motion accuracyNarr the Reg
2021-12-09Merge pull request #7519 from itsmeft24/masterbunnei
kernel: svc: Implement ProcessMemory and CodeMemory SVCs
2021-12-07Merge pull request #7525 from german77/notifabunnei
service/notif: Add notif:a and stub ListAlarmSettings, Initialize
2021-12-07Merge pull request #7521 from german77/dual_single_joyconsbunnei
service/hid: Implement SetNpadJoyAssignmentMode
2021-12-07Merge pull request #7488 from vonchenplus/support_multiple_videos_playingbunnei
Support multiple videos playing
2021-12-07Update k_code_memory.hitsmeft24
2021-12-07make KCodeMemory::GetSourceAddress constitsmeft24
Co-authored-by: Mai M. <mathew1800@gmail.com>
2021-12-06hle: kernel k_scheduler: EnableScheduling: Remove redundant ↵bunnei
GetCurrentThreadPointer calls.
2021-12-06hle: kernel k_process: Remove unnecessary .at usage with thread pinning methods.bunnei
2021-12-06hle: kernel: Remove unnecessary virtual specifier on NotifyAvailable.bunnei
2021-12-06hle: kernel: Remove unnecessary virtual specifier on EndWait.bunnei
2021-12-06hle: kernel: k_light_condition_variable: Revert unnecessary license comment ↵bunnei
changes.
2021-12-06hle: kernel: k_condition_variable: Revert unnecessary style changes.bunnei
2021-12-06hle: kernel: Remove unnecessary virtual specifier on CancelWait.bunnei
2021-12-06hle: kernel: service_thread: Force stop threads on destruction.bunnei
2021-12-06hle: kernel: k_light_lock: Implement CancelWait.bunnei
- Fixes a crash in Megadimension Neptunia VII.
2021-12-06hle: kernel: service_thread: Use std::jthread.bunnei
- Fixes a potential deadlock on service thread shutdown.
2021-12-06hle: kernel: k_thread: Skip reschedule on DisableDispatch with SC.bunnei
2021-12-06hle: kernel: k_thread: Rename sleeping_queue -> wait_queue.bunnei
2021-12-06hle: kernel: svc: Fix deadlock that can occur with single core.bunnei
2021-12-06hle: kernel: k_thread: Treat dummy threads as a special type.bunnei
2021-12-06hle: kernel: fix timing on thread preemptionFernandoS27
2021-12-06hle: kernel: fix scheduling ops from HLE host thread.FernandoS27