aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.HLE/HOS
AgeCommit message (Collapse)Author
2024-09-18Replace passing by IMemoryOwner<byte> with passing by concrete ↵jhorv
MemoryOwner<byte> (#7171) * refactor(perf): pass MemoryOwner<byte> around as itself rather than IMemoryOwner<byte> * fix(perf): get span via MemoryOwner<byte>.Span property instead of through Memory property * fix: incorrect comment change
2024-09-17Change image format view handling to allow view incompatible formats (#7311)gdkchan
* Allow creating texture aliases on texture pool * Delete old image format override code * New format incompatible alias * Missing bounds check * GetForBinding now takes FormatInfo * Make FormatInfo struct more compact
2024-09-17Change 6GB DRAM expansion to 8GB (#7313)gdkchan
* Change 6GB DRAM expansion to 8GB * Update texts and tooltips
2024-08-31Make HLE project AOT friendly (#7085)Emmanuel Hansen
* add hle service generator remove usage of reflection in device state * remove rd.xml generation * make applet manager reflection free * fix typos * fix encoding * fix style report * remove rogue generator reference * remove double assignment
2024-08-31Replace ImageSharp with SkiaSharp everywhere (#7030)Emmanuel Hansen
* replace ImageSharp with SkiaSharp for inline keyboard applet rendering * fix avalonia inline keyboard input * remove image sharp from gtk3 project * add skiasharp linux assets * fix whitespace * fix format * fix ico image offset when saving shortcut to windows
2024-08-17nim:eca : Stub CreateServerInterface2 (#7128)Tsubasa0504
* Add files via upload * Add files via upload * Update src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServerInterface.cs --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
2024-07-31Fix off-by-one on audio renderer PerformanceManager.GetNextEntry (#7139)gdkchan
2024-07-22Update kernel GetInfo SVC for firmware 18.0.0 (#7075)gdkchan
* Implement kernel GetInfo AliasRegionExtraSize * Implement IsSvcPermitted * Remove warning supressions that are no longer needed * Remove useless cast
2024-07-15replace ByteMemoryPool usage in Ryujinx.HLE (#6953)jhorv
2024-06-25SetProcessMemoryPermission address and size are always 64-bit (#6977)Rafa
2024-06-16fix: for pooled memory used for reference types, clear it on return to the ↵jhorv
pool so that it doesn't prevent GC of the instances it contained (#6937)
2024-05-22Kernel: Wake cores from idle directly rather than through a host thread (#6837)riperiperi
* Kernel: Wake cores from idle directly rather than through a host thread Right now when a core enters an idle state, leaving that idle state requires us to first signal the core's idle thread, which then signals the correct thread that we want to run on the core. This means that in a lot of cases, we're paying double for a thread to be woken from an idle state. This PR moves this process to happen on the thread that is waking others out of idle, instead of an idle thread that needs to be woken first. For compatibility the process has been kept as similar as possible - the process for IdleThreadLoop has been migrated to TryLeaveIdle, and is gated by a condition variable that lets it run only once at a time for each core. A core is only considered for wake from idle if idle is both active and has been signalled - the signal is consumed and the active state is cleared when the core leaves idle. Dummy threads (just the idle thread at the moment) have been changed to have no host thread, as the work is now done by threads entering idle and signalling out of it. This could put a bit of extra work on threads that would have triggered `_idleInterruptEvent` before, but I'd expect less work than signalling all those reset events and the OS overhead that follows. Worst case is that other threads performing these signals at the same time will have to wait for each other, but it's still going to be a very short amount of time. Improvements are best seen in games with heavy (or very misguided) multithreading, such as Pokemon: Legends Arceus. Improvements are expected in Scarlet/Violet and TOTK, but are harder to measure. Testing on Linux/MacOS still to be done, definitely need to test more games as this affects all of them (obviously) and any issues might be rare to encounter. * Remove _idleThread entirely * Use spinwait so we don't completely blast the CPU with cmpxchg * Didn't I already do this * Cleanup
2024-05-14HID: Stub IHidServer: 134 (SetNpadAnalogStickUseCenterClamp) (#6664)Tsubasa0504
* Add files via upload * Update IHidServer.cs mistakes... * format how do i do it * Update src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs Co-authored-by: Agatem <agaatem@outlook.com> * Update src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs Co-authored-by: Agatem <agaatem@outlook.com> * bruh * Apply suggestions from code review Co-authored-by: gdkchan <gab.dark.100@gmail.com> * use readuint32 instead * second thought * i hope it works thanks someone higher up with the same thing * pid * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * styles i think * Apply suggestions from code review Co-authored-by: makigumo <makigumo@users.noreply.github.com> --------- Co-authored-by: Agatem <agaatem@outlook.com> Co-authored-by: gdkchan <gab.dark.100@gmail.com> Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: makigumo <makigumo@users.noreply.github.com>
2024-04-28HID: Correct direct mouse deltas (#6736)riperiperi
The delta position of the mouse should be the difference between the current and last position. Subtracting the last deltas doesn't really make sense. Won't implement pointer lock for first person games, but might stop some super weird behaviour with the mouse values appearing totally random.
2024-04-21Use pooled memory and avoid memory copies (#6691)jhorv
* perf: use ByteMemoryPool * feat: KPageTableBase/KPageTable new methods to read and write `ReadOnlySequence<byte>` * new: add IWritableBlock.Write(ulong, ReadOnlySequence<byte>) with default impl * perf: use GetReadOnlySequence() instead of GetSpan() * perf: make `Parcel` IDisposable, use `ByteMemoryPool` for internal allocation, and make Parcel consumers dispose of it * remove comment about copySize * remove unnecessary Clear()
2024-04-19Do not compare Span<T> to 'null' or 'default' (#6683)Marco Carvalho
2024-04-19Update to new standard for volatility operations (#6682)Marco Carvalho
2024-04-11Allow BSD sockets Poll to exit when emulation ends (#6650)gdkchan
2024-04-10Revert "Update StoreConstantToMemory to match StoreConstantToAddress on ↵gdkchan
value…" (#6649) This reverts commit 22e3ff06b51db0fa72e9f2dc2aee395a5d1aa2df.
2024-04-11Update StoreConstantToMemory to match StoreConstantToAddress on value read ↵WilliamWsyHK
(#6642)
2024-04-07Replacing the try-catch block with null-conditional and null-coalescing ↵Marco Carvalho
operators (#6612) * Replacing the try-catch block with null-conditional and null-coalescing operators * repeating
2024-04-06Delete old 16KB page workarounds (#6584)gdkchan
* Delete old 16KB page workarounds * Rename Supports4KBPage to UsesPrivateAllocations * Format whitespace * This one should be false too * Update XML doc
2024-04-06Add mod enablement status in the log message (#6571)WilliamWsyHK
2024-04-05ts: Migrate service to Horizon project (#6514)Ac_K
* ts: Migrate service to Horizon project This PR migrate the `ts` service (stored in `ptm`) to the Horizon project: - It stubs all known IPCs. - IpcServer consts are checked by RE. Closes #6480 * Fix args
2024-03-26Implement host tracked memory manager mode (#6356)gdkchan
* Add host tracked memory manager mode * Skipping flush is no longer needed * Formatting + revert unrelated change * LightningJit: Ensure that dest register is saved for load ops that do partial updates * avoid allocations when doing address space lookup Add missing improvement * IsRmwMemory -> IsPartialRegisterUpdateMemory * Ensure we iterate all private allocations in range * PR feedback and potential fixes * Simplified bridges a lot * Skip calling SignalMappingChanged if Guest is true * Late map bridge too * Force address masking for prefetch instructions * Reprotection for bridges * Move partition list validation to separate debug method * Move host tracked related classes to HostTracked folder * New HostTracked namespace * Move host tracked modes to the end of enum to avoid PPTC invalidation --------- Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2024-03-16chore: remove repetitive words (#6500)standstaff
Signed-off-by: standstaff <zhengxingru@yeah.net>
2024-03-08Update dependencies from SixLabors to the latest version before the license ↵TSRBerry
change (#6440) * nuget: bump SixLabors.ImageSharp from 1.0.4 to 2.1.3 (#3976) * nuget: bump SixLabors.ImageSharp from 1.0.4 to 2.1.3 Bumps [SixLabors.ImageSharp](https://github.com/SixLabors/ImageSharp) from 1.0.4 to 2.1.3. - [Release notes](https://github.com/SixLabors/ImageSharp/releases) - [Commits](https://github.com/SixLabors/ImageSharp/compare/v1.0.4...v2.1.3) --- updated-dependencies: - dependency-name: SixLabors.ImageSharp dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Update for 2.x changes Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mary <mary@mary.zone> * Update SixLabors.ImageSharp to 2.1.7 This is the latest version we can update to without the license change. * Update SixLabors.ImageSharp.Drawing to v1.0.0 This is the latest version we can update to without the license change. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mary <mary@mary.zone>
2024-02-22Migrate Audio service to new IPC (#6285)gdkchan
* Migrate audren to new IPC * Migrate audout * Migrate audin * Migrate hwopus * Bye bye old audio service * Switch volume control to IHardwareDeviceDriver * Somewhat unrelated changes * Remove Concentus reference from HLE * Implement OpenAudioRendererForManualExecution * Remove SetVolume/GetVolume methods that are not necessary * Remove SetVolume/GetVolume methods that are not necessary (2) * Fix incorrect volume update * PR feedback * PR feedback * Stub audrec * Init outParameter * Make FinalOutputRecorderParameter/Internal readonly * Make FinalOutputRecorder IDisposable * Fix HardwareOpusDecoderManager parameter buffers * Opus work buffer size and error handling improvements * Add AudioInProtocolName enum * Fix potential divisions by zero
2024-02-22Ensure service init runs after Horizon constructor (#6342)gdkchan
2024-02-17hid: Stub SetTouchScreenResolution (#6322)Exhigh
* hid: Implement SetTouchScreenResolution * Fix Tomb Raider I-III Remastered from crashing without enabling Ignore Missing Services * PR Feedback: Update Comments
2024-02-15Fix PermissionLocked check on UnmapProcessCodeMemory (#6314)gdkchan
2024-02-15Stub VSMS related ioctls (#6313)gdkchan
* Stub VSMS related ioctls * Clean up usings
2024-02-11Infra: Capitalisation Consistency (#6296)Isaac Marovitz
* Rename Ryujinx.UI.Common * Rename Ryujinx.UI.LocaleGenerator * Update in Files AboutWindow * Configuration State * Rename projects * Ryujinx/UI * Fix build * Main remaining inconsistencies * HLE.UI Namespace * HLE.UI Files * Namespace * Ryujinx.UI.Common.Configuration.UI * Ryujinx.UI.Common,Configuration.UI Files * More instances
2024-02-06AccountService: Cache token data (#6260)riperiperi
* AccountService: Cache token data This method appears to indicate that the token returned should be cached. I've made it so that it generates a token that lasts until its expiration time, and reuses it on subsequent calls. * Private naming convention
2024-02-03Limit remote closed session removal to SM service (#6248)gdkchan
2024-02-02Ensure SM service won't listen to closed sessions (#6246)gdkchan
* Ensure SM service won't listen to closed sessions * PR feedback
2024-01-29Migrate friends service to new IPC (#6174)gdkchan
* Migrate friends service to new IPC * Add a note that the pointer buffer size and domain counts are wrong * Wrong length * Format whitespace * PR feedback * Fill in structs from PR feedback * Missed that one * Somehow forgot to save that one * Fill in enums from PR review * Language enum, NotificationTime * Format whitespace * Fix the warning
2024-01-29Mod: Do LayeredFs loading Parallel to improve speed (#6180)Ac_K
* Mod: Do LayeredFs loading Parallel to improve speed This fixes and superseed #5672 due to inactivity, nothing more. (See original PR for description) Testing are welcome. Close #5661 * Addresses gdkchan's feedback * commit to test mako change * Revert "commit to test mako change" This reverts commit 8b0caa8a21db298db3dfcbe5b7e9029c4f066c46.
2024-01-29Fix NRE when calling GetSockName before Bind (#6206)gdkchan
2024-01-26Ava UI: Mod Manager Fixes (#6179)Isaac Marovitz
* Fix string format + Crash * Better Logging * Properly Delete Mods Rename * Catch when trying to access bad directory
2024-01-26Fs: Log when Commit fails due to PathAlreadyInUse (#6178)Ac_K
* Fs: Log when Commit fails due to PathAlreadyInUse This fixes and superseed #5418, nothing more. (See original PR for description) Co-Authored-By: James R T <jamestiotio@gmail.com> * Update IFileSystem.cs --------- Co-authored-by: James R T <jamestiotio@gmail.com>
2024-01-26Ava UI: Mod Manager (#4390)Isaac Marovitz
* Let’s start again * Read folders and such * Remove Open Mod Folder menu items * Fix folder opening, Selecting/deselecting * She works * Fix GTK * AddMod * Delete * Fix duplicate entries * Fix file check * Avalonia 11 * Style fixes * Final style fixes * Might be too general * Remove unnecessary using * Enable new mods by default * More cleanup * Fix saving metadata * Dont deseralise ModMetadata several times * Avalonia I hate you * Confirmation dialgoues * Allow selecting multiple folders * Add back secondary folder * Search both paths * Fix formatting * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Rename Title to Application * Generic locale key * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Locale Updates * GDK Feedback * Fix --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
2024-01-25Horizon: Implement arp:r and arp:w services (#5802)Ac_K
* Horizon: Implement arp:r and arp:w services * Fix formatting * Remove HLE arp services * Revert "Remove HLE arp services" This reverts commit c576fcccadb963db56b96bacabd1c1ac7abfb1ab. * Keep LibHac impl since it's used in bcat * Addresses gdkchan's feedback * ArpApi in PrepoIpcServer and remove LmApi * Fix 2 * Fixes ArpApi init * Fix encoding * Update PrepoService.cs * Fix prepo
2024-01-25ssl: Work around missing remote hostname for authentication (#5988)TSRBerry
* ssl: Retrieve remote hostnames if the provided hostname is empty This avoids crashing with an AuthenticationException. * ssl: Remove unused variable from RetrieveHostName
2024-01-22Add a separate device memory manager (#6153)gdkchan
* Add a separate device memory manager * Still need this * Device writes are always tracked * Device writes are always tracked (2) * Rename more instances of gmm to mm
2024-01-20Implement a new JIT for Arm devices (#6057)gdkchan
* Implement a new JIT for Arm devices * Auto-format * Make a lot of Assembler members read-only * More read-only * Fix more warnings * ObjectDisposedException.ThrowIf * New JIT cache for platforms that enforce W^X, currently unused * Remove unused using * Fix assert * Pass memory manager type around * Safe memory manager mode support + other improvements * Actual safe memory manager mode masking support * PR feedback
2024-01-18Change shader cache init wait method (#6131)gdkchan
* Change shader cache init wait method * Make field readonly
2024-01-13Switch to `Microsoft.IdentityModel.JsonWebTokens` (#6108)Isaac Marovitz
* Switch to `Microsoft.IdentityModel.JsonWebTokens` * Formatting
2024-01-04Add support for PermissionLocked attribute added on firmware 17.0.0 (#6072)gdkchan
* Update MemoryState enum and add new flags * Add support for new PermissionLocked attribute added on firmware 17.0.0 * Format whitespace
2023-12-04editorconfig: Set default encoding to UTF-8 (#5793)TSRBerry
* editorconfig: Add default charset * Change file encoding from UTF-8-BOM to UTF-8