Updated Changelog (markdown)
parent
64678bf71a
commit
93b0404f9d
1 changed files with 27 additions and 0 deletions
27
Changelog.md
27
Changelog.md
|
@ -1,6 +1,33 @@
|
|||
# Ryujinx Changelog
|
||||
All updates to the Ryujinx official master build will be documented in this file
|
||||
|
||||
## 1.0.6003 - 2020-12-09
|
||||
### Added
|
||||
- Rewrote scheduler context switch code.
|
||||
- Now uses a lock to prevent the thread from being scheduled in two cores at once, like the official OS does.
|
||||
- Fixed thread CurrentCore value being updated ahead of time. Now it is only updated after the thread is switched to the new core.
|
||||
- Fixed bugs on some yield functions that could cause the scheduler to select the wrong thread.
|
||||
- Fixed bugs that would cause KThread and KSession reference counts to be decremented below 0. For KThread, it could cause a exception since the thread was removed from the KProcess thread list twice (only observed in single core mode before the changes).
|
||||
- Two asserts were added to ensure the reference count is not decremented below 0, or incremented after the object has been "destroyed".
|
||||
- Fixed race on unmap client buffer function (IPC related, not scheduler related, but its a small, simple change as was affecting the tests here as well, so I decided to just fix it).
|
||||
|
||||
Other improvements:
|
||||
- Core idle time is now properly reported to the guest instead of just returning 0 (I am not sure if games can actually read that).
|
||||
- GetCurrentThread and GetCurrentProcess functions were simplified, now it uses a thread local variable instead of looping through all core contexts and try finding the current thread.
|
||||
- Context switch speed was improved. This is in part thanks to the use of ManualResetEventSlim, that greatly improves the speed on context switches in quick succession, and in part to the simplification of the function.
|
||||
- The dummy thread and process were removed. Now GetCurrentThread and GetCurrentProcess just returns null if called from a non-guest or non-service thread.
|
||||
- Prevents bugs caused by external threads messing with the scheduler.
|
||||
- A new function was added that allows creating a guest process/thread from a external thread, this is used to start service faux processes.
|
||||
- Allow service threads to run in parallel again.
|
||||
- They can be still be blocked by kernel in some cases, like when waiting for IPC messages for example, however they are no longer scheduled to cores, which means that they are free to run in parallel.
|
||||
- The YieldUntilCompletion function was removed as it is no longer needed.
|
||||
- This matches the behavior before ipc-part2, and fixes issues caused by this specific ipc-part2 change, like the audio crackling on SMO etc.
|
||||
|
||||
Other changes:
|
||||
- Single core mode was removed. Now there is only multi core mode that is on by default.
|
||||
- The GUI checkbox was removed.
|
||||
- It is worth noting that the single core mode was not working anyway due to the bug mentioned before.
|
||||
|
||||
## 1.0.5995 - 2020-12-08
|
||||
### Added
|
||||
- Implemented IApplicationFunctions GetHealthWarningDisappearedSystemEvent call.
|
||||
|
|
Loading…
Add table
Reference in a new issue