aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle
AgeCommit message (Collapse)Author
2022-01-14core: hle: kernel: KProcess: Integrate with KWorkerTask and add ↵bunnei
unimplemented DoWorkerTaskImpl.
2022-01-14core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates.bunnei
- This makes our implementations of these more closely match HOS.
2022-01-14core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager.bunnei
2022-01-14core: hle: kernel: Add KWorkerTask and KWorkerTaskManager.bunnei
- These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess.
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-12service/hid: Decrease motion update rateNarr the Reg
Motion stops working in Mario Tennis in swing mode if the update rate is too fast even when HW it updates at the same speed. 10ms it's the minimum period that the game needs to start working again.
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