| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Switchbrew has the function names now.
|
|
service/hid: Initialize applet_resource on SetNpadAnalogStickUseCenterClamp
|
|
|
|
Kernel Memory Updates (Part 3): Clear KMemoryManager pages & other fixes
|
|
Accurately implement thread exit
|
|
Found by static analysis with PVS-Studio. Nobody seems to really know what was it doing there.
|
|
hle: kernel: Fix service_threads access to be thread safe V2.
|
|
- Heap pages should be zero'd.
- Also explicitly passed along heap allocation option.
|
|
service/hid: Decrease motion update rate
|
|
DoWorkerTaskImpl.
- This is used to terminate a thread asynchronously after it has been exited.
- This fixes a crash that can occur in Pokemon Sword/Shield because a thread is incorrectly closed on svcExitThread, then, the thread is destroyed on svcCloseHandle while it is still scheduled.
- Instead, we now wait for the thread to no longer be scheduled on all cores before destroying it from KWorkerTaskManager, which is accurate to HOS behavior.
|
|
unimplemented DoWorkerTaskImpl.
|
|
- This makes our implementations of these more closely match HOS.
|
|
|
|
- These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess.
|
|
- 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.
|
|
hle: kernel: Fix service_threads access to be thread safe.
|
|
- 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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core:hle:service:nvflinger Implement few type in bufferqueue query method
|
|
This reverts commit e7733544779f2706d108682dd027d44e7fa5ff4b, reversing
changes made to abbbdc2bc027ed7af236625ae8427a46df63f7e7.
|
|
Fixes a hang that may occur when stopping emulation and the VSync thread is blocked on the syncpoint condition variable.
|
|
- 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.
|
|
|
|
|
|
- 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.
|
|
core: hle: kernel: Implement SetMemoryPermission.
|
|
- Not seen in any games yet, but validated with kernel tests.
|
|
- 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.
|
|
- Enforce tha the supplied handle is invalid, not valid.
- This gets Witcher 3 booting.
|
|
service/hid: Improve console motion accuracy
|
|
core: hle: Remove global HLE lock.
|
|
Avoids a memory leak.
|
|
- 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.
|
|
|
|
|
|
Kernel: Improve threading & scheduling V3
|
|
|
|
kernel: svc: Implement ProcessMemory and CodeMemory SVCs
|
|
service/notif: Add notif:a and stub ListAlarmSettings, Initialize
|
|
service/hid: Implement SetNpadJoyAssignmentMode
|