aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-04-21implement `MemoryManagerHostTracked.GetReadOnlySequence()` (#6695)jhorv
* implement `MemoryManagerHostTracked.GetReadOnlySequence()`, fixes crashes on game starts on MacOS * whitespace fixes * whitespace fixes * add missing call to `SignalMemoryTracking()` * adjust call to `SignalMemoryTracking()`` * don't use GetPhysicalAddressMemory() * add newline for consistency
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-20End render target lifetime on syncpoint increment (#6687)gdkchan
2024-04-19chore: remove repetitive words (#6690)toofooboo
Signed-off-by: toofooboo <cmaker@foxmail.com>
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-18Fix unmapped address check when reading texture handles (#6679)gdkchan
2024-04-17Ava UI: Input Menu Refactor (#5826)Isaac Marovitz
* Refactor * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update src/Ryujinx.Input/ButtonValueType.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Add empty line * Requested renames * Update src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Make parent models private readonly * Fix ControllerInputView * Make line shorter * Mac keys in locale * Double line break * Fix build * Get rid of _isValid * Fix potential race condition * Rename HasAnyButtonPressed to IsAnyButtonPressed * Use switches * Simplify enumeration --------- Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: gdkchan <gab.dark.100@gmail.com> Co-authored-by: TSR Berry <20988865+TSRBerry@users.noreply.github.com>
2024-04-15Fix crash when changing controller config (#6654)Luke
* fix needsMotionInputUpdate conditions * Fix formatting Co-authored-by: gdkchan <gab.dark.100@gmail.com> --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2024-04-14Texture loading: reduce memory allocations (#6623)jhorv
* rebase * add methods Ryyjinx.Common EmbeddedResources and SteamUtils * GAL changes - change SetData() methods and ThreadedTexture commands to use IMemoryOwner<byte> instead of SpanOrArray<byte> * Ryujinx.Graphics.Texture: change texture conversion methods to return IMemoryOwner<byte> and allocate from ByteMemoryPool * Ryujinx.Graphics.OpenGL: update ITexture and Texture-like types with SetData() methods to take IMemoryOwner<byte> instead of SpanOrArray<byte> * Ryujinx.Graphics.Vulkan: update ITexture and Texture-like types with SetData() methods to take IMemoryOwner<byte> instead of SpanOrArray<byte> * Ryujinx.Graphics.Gpu: update ITexture and Texture-like types with SetData() methods to take IMemoryOwner<byte> instead of SpanOrArray<byte> * Remove now-unused SpanOrArray<T> * post-rebase cleanup * PixelConverter: remove unsafe modifier on safe methods, and remove one unnecessary cast * use ByteMemoryPool.Rent() in GetWritableRegion() impls * fix formatting, rename `ReadRentedMemory()` to `ReadFileToRentedMemory()`` * Texture.ConvertToHostCompatibleFormat(): dispose of `result` in Astc decode branch
2024-04-11Account for swapchain image count change after re-creation (#6652)gdkchan
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-10Ava UI: Prevent Status Bar Backend Update (#6506)Isaac Marovitz
* Prevent Status Bar Backend Update * Make it a switch
2024-04-10Fix input consumed by audio renderer SplitterState.Update (#6640)gdkchan
* Fix input consumed by audio renderer SplitterState.Update * Use sizeof(int) to make clear what the value is
2024-04-09CPU: Produce non-inf results for RSQRTE instruction with subnormal inputs ↵gdkchan
(#6634) * CPU: Produce non-inf results for RSQRTE instruction with subnormal inputs * PPTC version bump
2024-04-09Use ResScaleUnsupported flag for texture arrays (#6626)gdkchan
2024-04-09Fast D32S8 2D depth texture copy (#6636)gdkchan
2024-04-08Pin audio renderer update output buffers (#6633)gdkchan
2024-04-07Disable CLI setting persistence for HW-accelerated GUI. (#6620)MutantAura
2024-04-07Add support for large sampler arrays on Vulkan (#6489)gdkchan
* Add support for large sampler arrays on Vulkan * Shader cache version bump * Format whitespace * Move DescriptorSetManager to PipelineLayoutCacheEntry to allow different pool sizes per layout * Handle array textures with different types on the same buffer * Somewhat better caching system * Avoid useless buffer data modification checks * Move redundant bindings update checking to the backend * Fix an issue where texture arrays would get the same bindings across stages on Vulkan * Backport some fixes from part 2 * Fix typo * PR feedback * Format whitespace * Add some missing XML docs
2024-04-07CPU: Fix PC alignment for ADR thumb instruction (#6613)gdkchan
* Fix PC alignment for ADR thumb instruction * PPTC version bump
2024-04-07Audio rendering: reduce memory allocations (#6604)jhorv
* - WritableRegion: enable wrapping IMemoryOwner<byte> - IVirtualMemoryManager impls of GetWritableRegion() use pooled memory when region is non-contiguous. - IVirtualMemoryManager: add GetReadOnlySequence() and impls - ByteMemoryPool: add new method RentCopy() - ByteMemoryPool: make class static, remove ctor and singleton field from earlier impl * - BytesReadOnlySequenceSegment: move from Ryujinx.Common.Memory to Ryujinx.Memory - BytesReadOnlySequenceSegment: add IsContiguousWith() and Replace() methods - VirtualMemoryManagerBase: - remove generic type parameters, instead use ulong for virtual addresses and nuint for host/physical addresses - implement IWritableBlock - add virtual GetReadOnlySequence() with coalescing of contiguous segments - add virtual GetSpan() - add virtual GetWritableRegion() - add abstract IsMapped() - add virtual MapForeign(ulong, nuint, ulong) - add virtual Read<T>() - add virtual Read(ulong, Span<byte>) - add virtual ReadTracked<T>() - add virtual SignalMemoryTracking() - add virtual Write() - add virtual Write<T>() - add virtual WriteUntracked() - add virtual WriteWithRedundancyCheck() - VirtualMemoryManagerRefCountedBase: remove generic type parameters - AddressSpaceManager: remove redundant methods, add required overrides - HvMemoryManager: remove redundant methods, add required overrides, add overrides for _invalidAccessHandler handling - MemoryManager: remove redundant methods, add required overrides, add overrides for _invalidAccessHandler handling - MemoryManagerHostMapped: remove redundant methods, add required overrides, add overrides for _invalidAccessHandler handling - NativeMemoryManager: add get properties for Pointer and Length - throughout: removed invalid <inheritdoc/> comments * - WritableRegion: enable wrapping IMemoryOwner<byte> - IVirtualMemoryManager impls of GetWritableRegion() use pooled memory when region is non-contiguous. - IVirtualMemoryManager: add GetReadOnlySequence() and impls - ByteMemoryPool: add new method RentCopy() - ByteMemoryPool: make class static, remove ctor and singleton field from earlier impl * add PagedMemoryRange enumerator types, use them in IVirtualMemoryManager implementations to consolidate page-handling logic and add a new capability - the coalescing of pages for consolidating memory copies and segmentation. * new: more tests for PagedMemoryRangeCoalescingEnumerator showing coalescing of contiguous segments * make some struct properties readonly * put braces around `foreach` bodies * encourage inlining of some PagedMemoryRange*Enumerator members * DynamicRingBuffer: - use ByteMemoryPool - make some methods return without locking when size/count argument = 0 - make generic Read<T>()/Write<T>() non-generic because its only usage is as T = byte - change Read(byte[]...) to Read(Span<byte>...) - change Write(byte[]...) to Write(Span<byte>...) * change IAudioRenderer.RequestUpdate() to take a ReadOnlySequence<byte>, enabling zero-copy audio rendering * HipcGenerator: support ReadOnlySequence<byte> as IPC method parameter * change IAudioRenderer/AudioRenderer RequestUpdate* methods to take input as ReadOnlySequence<byte> * MemoryManagerHostTracked: use rented memory when contiguous in `GetWritableRegion()` * rebase cleanup * dotnet format fixes * format and comment fixes * format long parameter list - take 2 * - add support to HipcGenerator for buffers of type `Memory<byte>` - change `AudioRenderer` `RequestUpdate()` and `RequestUpdateAuto()` to use Memory<byte> for output buffers, removing another memory block allocation/copy * SplitterContext `UpdateState()` and `UpdateData()` smooth out advance/rewind logic, only rewind if magic is invalid * DynamicRingBuffer.Write(): change Span<byte> to ReadOnlySpan<byte>
2024-04-07Enhance Error Handling with Try-Pattern Refactoring (#6610)Marco Carvalho
* Enhance Error Handling with Try-Pattern Refactoring * refactoring * refactoring * Update src/Ryujinx.HLE/FileSystem/ContentPath.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
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-06misc: Add ANGLE configuration option to JSON and CLI (#6520)MutantAura
* Add hardware-acceleration toggle to ConfigurationState. * Add command line override for easier RenderDoc use. * Adjust CLI arguments. * fix whitespace format check * fix copypasta in comment * Add X11 rendering mode toggle * Remove ANGLE specific comments.
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-06Vulkan: Fix swapchain image view leak (#6509)gdkchan
2024-04-06Vulkan: Skip draws when patches topology is used without a tessellation ↵gdkchan
shader (#6508)
2024-04-06Add mod enablement status in the log message (#6571)WilliamWsyHK
2024-04-06"Task.Wait()" synchronously blocks, use "await" instead (#6598)Marco Carvalho
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-04-05Ignore diacritics on game search (#6602)gdkchan
2024-04-05Add missing ModWindowTitle locale key (#6601)gdkchan
* Add missing ModWindowTitle locale key * Fix this while I'm at it
2024-04-04Add support to IVirtualMemoryManager for zero-copy reads (#6251)jhorv
* - WritableRegion: enable wrapping IMemoryOwner<byte> - IVirtualMemoryManager impls of GetWritableRegion() use pooled memory when region is non-contiguous. - IVirtualMemoryManager: add GetReadOnlySequence() and impls - ByteMemoryPool: add new method RentCopy() - ByteMemoryPool: make class static, remove ctor and singleton field from earlier impl * - BytesReadOnlySequenceSegment: move from Ryujinx.Common.Memory to Ryujinx.Memory - BytesReadOnlySequenceSegment: add IsContiguousWith() and Replace() methods - VirtualMemoryManagerBase: - remove generic type parameters, instead use ulong for virtual addresses and nuint for host/physical addresses - implement IWritableBlock - add virtual GetReadOnlySequence() with coalescing of contiguous segments - add virtual GetSpan() - add virtual GetWritableRegion() - add abstract IsMapped() - add virtual MapForeign(ulong, nuint, ulong) - add virtual Read<T>() - add virtual Read(ulong, Span<byte>) - add virtual ReadTracked<T>() - add virtual SignalMemoryTracking() - add virtual Write() - add virtual Write<T>() - add virtual WriteUntracked() - add virtual WriteWithRedundancyCheck() - VirtualMemoryManagerRefCountedBase: remove generic type parameters - AddressSpaceManager: remove redundant methods, add required overrides - HvMemoryManager: remove redundant methods, add required overrides, add overrides for _invalidAccessHandler handling - MemoryManager: remove redundant methods, add required overrides, add overrides for _invalidAccessHandler handling - MemoryManagerHostMapped: remove redundant methods, add required overrides, add overrides for _invalidAccessHandler handling - NativeMemoryManager: add get properties for Pointer and Length - throughout: removed invalid <inheritdoc/> comments * make HvMemoryManager class sealed * remove unused method * adjust MemoryManagerHostTracked * let MemoryManagerHostTracked override WriteImpl()
2024-04-03Stop clearing Modified flag on DiscardData (#6591)gdkchan
2024-04-02New Crowdin updates (#6550)Ac_K
* New translations en_us.json (Spanish) * New translations en_us.json (Arabic) * New translations en_us.json (German) * New translations en_us.json (Greek) * New translations en_us.json (Italian) * New translations en_us.json (Korean) * New translations en_us.json (Polish) * New translations en_us.json (Russian) * New translations en_us.json (Turkish) * New translations en_us.json (Ukrainian) * New translations en_us.json (Chinese Traditional) * New translations en_us.json (Portuguese, Brazilian) * New translations en_us.json (Spanish) * New translations en_us.json (Arabic) * New translations en_us.json (German) * New translations en_us.json (Greek) * New translations en_us.json (Hebrew) * New translations en_us.json (Italian) * New translations en_us.json (Japanese) * New translations en_us.json (Korean) * New translations en_us.json (Polish) * New translations en_us.json (Russian) * New translations en_us.json (Turkish) * New translations en_us.json (French) * New translations en_us.json (Ukrainian) * New translations en_us.json (Chinese Simplified) * New translations en_us.json (Chinese Traditional) * New translations en_us.json (Portuguese, Brazilian) * New translations en_us.json (Thai) * New translations en_us.json (Italian) * New translations en_us.json (Japanese) * New translations en_us.json (Polish) * New translations en_us.json (Ukrainian) * New translations en_us.json (Chinese Simplified) * New translations en_us.json (Arabic) * New translations en_us.json (Italian) * New translations en_us.json (Russian) * New translations en_us.json (Chinese Simplified) * New translations en_us.json (Italian) * New translations en_us.json (German) * New translations en_us.json (Korean) * New translations en_us.json (Chinese Simplified) * New translations en_us.json (Arabic) * New translations en_us.json (Hebrew) * New translations en_us.json (Chinese Simplified) * New translations en_us.json (Arabic)
2024-03-27UI: Friendly driver name reporting. (#6530)MutantAura
* Implement friendly VkDriverID names for UI. * Capitalise NVIDIA * Prefer vendor name on macOS * Typo fix Co-authored-by: gdkchan <gab.dark.100@gmail.com> --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
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-26Recreate swapchain correctly when toggling VSync (#6521)jcm
Co-authored-by: jcm <butt@butts.com>
2024-03-26Disable push descriptors for Intel ARC GPUs on Windows (#6551)gdkchan
* Move some init logic out of PrintGpuInformation, then delete it * Disable push descriptors for Intel ARC on Windows * Re-add PrintGpuInformation just to show it in the log
2024-03-23New gamecard icons (#6557)SamusAranX
* Replaced all gamecard images and added a blank variant * File optimization
2024-03-23Add a few missing locale strings on Avalonia (#6556)gdkchan
* Add a few missing locale strings on Avalonia * Rename LDN MitM to ldn_mitm
2024-03-21Updates the default value for BufferedQuery (#6351)Matt Heins
AMD GPUs (possibly just RDNA 3) could hang with the previous value until the MaxQueryRetries was hit. Fix #6056 Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2024-03-21[UI] Fix Display Name Translations & Update some Chinese Translations (#6388)WilliamWsyHK
* Remove incorrect additional back-slash * Touch-up on TChinese translations * Little touch-up on SChinese translations
2024-03-20New Crowdin updates (#6541)Ac_K
* New translations en_us.json (French) * New translations en_us.json (Spanish) * New translations en_us.json (Arabic) * New translations en_us.json (German) * New translations en_us.json (Greek) * New translations en_us.json (Hebrew) * New translations en_us.json (Italian) * New translations en_us.json (Japanese) * New translations en_us.json (Korean) * New translations en_us.json (Polish) * New translations en_us.json (Russian) * New translations en_us.json (Turkish) * New translations en_us.json (Ukrainian) * New translations en_us.json (Chinese Simplified) * New translations en_us.json (Chinese Traditional) * New translations en_us.json (Portuguese, Brazilian) * New translations en_us.json (Thai) * Add missing Thai language name * Add new languages * Enable RTL for Arabic --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2024-03-17Ava UI: Fix locale crash (#6385)Isaac Marovitz
* Fix locale crash * Apply suggestions from code review --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
2024-03-16Ava UI: Content Dialog Fixes (#6482)Isaac Marovitz
* Don’t use ContentDialogHelper when not necessary * Remove `ExtendClientAreaToDecorationsHint`
2024-03-16chore: remove repetitive words (#6500)standstaff
Signed-off-by: standstaff <zhengxingru@yeah.net>