aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-12-16CPU: Implement VRINTX.F32 | VRINTX.F64 (#1776)sharmander
* Start implementation * Draft * Updated opcode. Needs verification. * Clean up code. * Update implementation and tests. * Update implemenation + tests * Get RM from FPSCR + Do not use emit/addintrinsic * Remove "fast" path, as recommended by gdk. * Variable DELETED. * Update ARMeilleure/Decoders/OpCodeTable.cs Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com> * Update ARMeilleure/Instructions/InstEmitSimdCvt32.cs Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com> * Update ARMeilleure/Instructions/InstEmitSimdCvt32.cs Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com> * Update ARMeilleure/Instructions/InstEmitSimdCvt32.cs Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com> * Move method * stringing things together :) Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>
2020-12-16Clear JIT cache on exit (#1518)gdkchan
* Initial cache memory allocator implementation * Get rid of CallFlag * Perform cache cleanup on exit * Basic cache invalidation * Thats not how conditionals works in C# it seems * Set PTC version to PR number * Address PR feedback * Update InstEmitFlowHelper.cs * Flag clear on address is no longer needed * Do not include exit block in function size calculation * Dispose jump table * For future use * InternalVersion = 1519 (force retest). Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>
2020-12-15gui/gpu: Implement setting and toggle for Aspect Ratio (#1777)Ac_K
* gui/gpu: Implement setting and toggle for Aspect Ratio * address gdkchan feedback and add 16:10 * fix config.json file * Fix rebase * Address gdkchan feedback * Address rip feedback * Fix aspectWidth
2020-12-15am/gui: Implement Wake-up message (#1750)Ac_K
* am/gui: Implement Wake-up message. This implement the ability to send a Wake-up (Resume) message to the guest. Sometime games needs to Sleep and Wake-up the switch to unlock some ingame features. * Address gdkchan feedback
2020-12-15CPU: Implement VFMA (Vector) (#1762)sharmander
* Implement VFMA.F64 * Simplify switch * Simplify FMA Instructions into their own IntrinsicType. * Remove whitespace * Fix indentation * Change tests for Vfnms -- disable inf / nan * Move args up, not description ;) * Implementation Complete. All Tests Pass (Slow / Fast Path) * Move location of function in assembler + test updates. * Shift params upwards * Remove unused function * Update PTC version. * Add comments / re-oreder opcode table. * Remove whitespace * Fix nit * Fix nit. * Fix whitespace * Wrong opcode was used by a bad merge. * Addressed rip's comments.
2020-12-14Fix pre-allocator shift instruction copy on a specific case (#1752)gdkchan
* Fix pre-allocator shift instruction copy on a specific case * Fix to make shift use int rather than long for constants
2020-12-13Fix register read after write on STREX implementation (#1801)gdkchan
* Fix register read after write on STREX implementation * PTC version update
2020-12-13salieri: Support read-only mode if archive is already opened (#1807)Mary
This improves shader cache resilience when people opens another program that touch the cache.zip.
2020-12-13Correct type of executable sizes (#1802)gdkchan
2020-12-12Remove inexistent buffer from ↵gdkchan
GetNintendoAccountUserResourceCacheForApplication (#1809)
2020-12-12Rewrite size for fixed size buffers (#1808)gdkchan
2020-12-12End empty gl queries before returning them to the pool. (#1806)riperiperi
2020-12-11GPU: Improve unnecessary return value in Map function. (#1799)sharmander
* Implement VFNMA.F<32/64> * Update PTC Version * Update Implementation & Renames & Correct Order * Add Logging * Additional logging * Add additional check to restart loop from beginning if address goes beyond maximum allowed. * Additional Check that the total range required doesn't exceed capacity of allocator addresses. * Improve logging * Ensure hex output * Update Ryujinx.HLE/HOS/Services/Nv/NvMemoryAllocator.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Remove extra page at end * Remove unnecessary return val in Map function. * Remove incorrect description Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2020-12-10GPU: Resolve Memory Allocation Issues (#1797)sharmander
* Implement VFNMA.F<32/64> * Update PTC Version * Update Implementation & Renames & Correct Order * Add Logging * Additional logging * Add additional check to restart loop from beginning if address goes beyond maximum allowed. * Additional Check that the total range required doesn't exceed capacity of allocator addresses. * Improve logging * Ensure hex output * Update Ryujinx.HLE/HOS/Services/Nv/NvMemoryAllocator.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Remove extra page at end Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2020-12-10ngct: Fix services and stub calls (#1756)Ac_K
2020-12-09NVIDIA Thread create/delete stutter workarounds (#1760)riperiperi
* Thread create/delete stutter workarounds Pt 1 * As tiered compilation is disabled, disable quick jit too Should result in tier 1 compilation all the time * Fix rebase.
2020-12-09GPU - Improve Memory Allocation (#1722)sharmander
* Implement TreeMap from scratch. Begin implementation of MemoryBlockManager * Implement GetFreePosition using MemoryBlocks * Implementation of Memory Management using a Tree. Still some issues to work around, but promising thus far. * Resolved invalid mapping issue. Performance appears promising. * Add tick metrics * Use the logger instead * Use debug loggin instead of info. * Remove unnecessary code. Add descriptions of added functions. * Improve memory allocation even further. As well as improve speed of position fetching. * Add TreeDictionary to Ryujinx Commons Removed Unnecessary Usigns * Add a Performance Profiler + Improve ReserveFixed * Begin transition to allocation in nvdrv * Create singleton nvmemallocator * Moved Allocation into Nv Related Files As requested by gdkchan, any allocation of memory has been moved into the driver files. Mapping remains in the GPU MemoryManager. * Remove unnecessary usings * Add missing descriptions * Correct descriptions * Fix formatting. * Remove unnecessary whitespace * Formatting / Convention Updates * Changes / Fixes Made syntax and convention changes as requested by gdkchan. Fixed an issue where IsRegionUsed would return the wrong boolean. Fixed an issue where GetFreePosition was asked for an address instead of a size. * Undo commenting of Assert in shader cache * Update Ryujinx.Common/Collections/TreeDictionary.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Resolved many suggestions * Implement Improved TreeDictionary Based off of Pseudo code and custom implementations. * Rename _set to _dictionary * Remove unused code * Remove unused code. * Remove unnecessary MapLow function. * Resolve data-structure based issues * Make adjustments to memory management. Deactive de-allocation for now, it causes more harm than good. * Minor refactorings + Re-implement deallocation Also cleaned up unnecessary code. * Add Tests for TreeDictionary * Update data structure to properly balance the tree * Experimental Implementation: 1. Reduce Time to Next Node to O(1) Runtime 2. Reduce While Loop Ct To 2 (In Most Cases) * Address issues w/ Deallocating Memory * Final Build + Fully Implement Dictionary Interface for new Data Structure + Cover All Memory Allocation Edge Cases, particularly w/ Games that De-Allocate a lot. * Minor Corrections Give TreeDictionary its own count (do not depend on inner dictionary) Properly remove adjacent allocations * Add AsList * Fix bug where internal dictionary wasn't being updated w/ new node for overwritten key. * Address comments in review. * Fix issue where block wouldn't break out (Fixes UE4 issues) * Update descriptions * Update descriptions * Reduce Node visibility to protect TreeDictionary Integrity + Remove usage of struct. * Update tests to use new TreeDictionary implementation. * Remove usage of dictionary in TreeDictionary * Refactoring / Renaming * Remove unneeded memoryblock class. * Add space for while * Add space for if * Formatting / descriptions * Clarified some descriptions * Reduce visibility of memory allocator * Edit method names to make more sense as memory blocks are no longer in use. * Make names consistent. * Protect against npe when sucessorof is called against keys that don't exist. (Not in use by memory manager, this is for other prs that might use this data structure) * Possible edge-case resolve * Update Ryujinx.Common/Collections/TreeDictionary.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Update Ryujinx.HLE/HOS/Services/Nv/NvMemoryAllocator.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Reduce # of unnecessary duplicate variables / Reduce visibility of variables only internally used. * Rename count to _count * Update Description of Add method. * Fix copypasta * Address comments * Address comments * Remove whitespace * Address comments, condense variables. * Consolidate vars * Fix whitespace. * Nit * Fix exception msg * Fix arrayIndex check * Fix arrayIndex check + indexer * Remove whitespace from cast Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2020-12-09Rewrite scheduler context switch code (#1786)gdkchan
* Rewrite scheduler context switch code * Fix race in UnmapIpcRestorePermission * Fix thread exit issue that could leave the scheduler in a invalid state * Change context switch method to not wait on guest thread, remove spin wait, use SignalAndWait to pass control * Remove multi-core setting (it is always on now) * Re-enable assert * Remove multicore from default config and schema * Fix race in KTimeManager
2020-12-09am: Implement GetHealthWarningDisappearedSystemEvent (#1788)Ac_K
This implement IApplicationFunctions GetHealthWarningDisappearedSystemEvent call which is needed by Mario Kart 8 in Chinese version. Call was checked by RE. We still have to determine where to signals some AM events. Thanks to Kakasita on our Discord to reported this and confirm this works fine!
2020-12-07Signal memory tracking before/after mapping into another process (#1785)riperiperi
* Signal memory tracking before/after mapping into another process * Wording. * Add missing method.
2020-12-07CPU: Implement VFNMA.F32 | F.64 (#1783)sharmander
* Implement VFNMA.F<32/64> * Update PTC Version * Update Implementation & Renames & Correct Order * Fix alignment * Update implementation to not trigger assert * Actually use the intrinsic that makes sense :)
2020-12-07Add support for guest Fz (Fpcr) mode through host Ftz and Daz (Mxcsr) modes ↵LDj3SNuD
(fast paths). (#1630) * Add support for guest Fz (Fpcr) mode through host Ftz and Daz (Mxcsr) modes (fast paths). * Ptc.InternalVersion = 1630 * Nits. * Address comments. * Update Ptc.cs * Address comment.
2020-12-07logger: Add build version to the log file names (#1782)Ac_K
2020-12-03Extract texture Target from Info for quick access (#1774)riperiperi
2020-12-03CPU: Implement VFNMS.F32/64 (#1758)sharmander
* Add necessary methods / op-code * Enable Support for FMA Instruction Set * Add Intrinsics / Assembly Opcodes for VFMSUB231XX. * Add X86 Instructions for VFMSUB231XX * Implement VFNMS * Implement VFNMS Tests * Add special cases for FMA instructions. * Update PPTC Version * Remove unused Op * Move Check into Assert / Cleanup * Rename and cleanup * Whitespace * Whitespace / Rename * Re-sort * Address final requests * Implement VFMA.F64 * Simplify switch * Simplify FMA Instructions into their own IntrinsicType. * Remove whitespace * Fix indentation * Change tests for Vfnms -- disable inf / nan * Move args up, not description ;) * Undo vfma * Completely remove vfms code., * Fix order of instruction in assembler
2020-12-03Dummy out gl queries with 0 draws, remove glFlush call (#1773)riperiperi
2020-12-03Cache delegate for QueryModified, use regular multi handle. (#1771)riperiperi
2020-12-03Make sure to not leak copy handles passed in request (#1772)Mary
* Make sure to not leak copy handles passed in request Following last gdkchan's PR this make sure to close copy handles that are passed by guest when it should. * fix comment copy pasta
2020-12-02Close audio WorkBuffer transfer memory handle (#1770)gdkchan
2020-12-02Create a single guest process per IPC message processor (#1769)gdkchan
2020-12-02amadeus: Fix a typo in TapFrame logic (#1767)Mary
This fix a crash at boot in Pang Adventures
2020-12-02IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special ↵gdkchan
handling from kernel (#1458) * IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special handling from kernel * Fix for applet transfer memory + some nits * Keep handles if possible to avoid server handle table exhaustion * Fix IPC ZeroFill bug * am: Correctly implement CreateManagedDisplayLayer and implement CreateManagedDisplaySeparableLayer CreateManagedDisplaySeparableLayer is requires since 10.x+ when appletResourceUserId != 0 * Make it exit properly * Make ServiceNotImplementedException show the full message again * Allow yielding execution to avoid starving other threads * Only wait if active * Merge IVirtualMemoryManager and IAddressSpaceManager * Fix Ro loading data from the wrong process Co-authored-by: Thog <me@thog.eu>
2020-12-02Implement Force Early Z Register (#1755)riperiperi
2020-12-01Add a "Remove All" button to the DLC and Update windows (#1579)Xpl0itR
2020-12-01Add option to start games in fullscreen mode (#1580)Xpl0itR
* Add option to start games in fullscreen mode * Add command line option * Use pascal case on menu item
2020-12-01salieri: Fix missing guest GPU accessor missing on hashes (#1759)Mary
This adds the guest GPU accessor to hashes computation. As this change all the hashes from the cache, I added some migration logic. This is required for #1755.
2020-12-01common: Fix last warning in SystemInfo (#1757)Ac_K
* common: Fix last warning in SystemInfo * info to Info * fix MacOSSystemInfo file name by delete the file * MacOSSysteminfo to MacOSSystemInfo
2020-12-01config: Fix MaxAnisotropy value parsing (#1764)Ac_K
2020-11-27audio: Cleanup Ryujinx.Audio and fix OpenAL issue (#1746)Ac_K
* audio: Cleanup SoundIO and fix OpenAL issue * fix tabs by spaces * Fix extra spaces * Fix SoundIO.cs * Fix ContainsAudioOutBuffer
2020-11-27Prefer truly perfect texture matches over fomat aliased ones (#1754)riperiperi
2020-11-27Blacklist very textures with a very small width or height from scaling (#1753)riperiperi
2020-11-27ui: Check last played datetime validity against current culture (#1730)Mary
This is an issue happening when you change your datetime format on your system and try to sort via last played datetime. DateTime.Parse use the current thread culture and will not parse date correctly, effectively causing a crash. As such, I added a check when loading the game list that ensure that the datetime is valid in current culture. Fix #1727.
2020-11-27Remove some warnings and cleaning code (#1736)Ac_K
2020-11-24pctl: Implement IsRestrictionEnabled and fix ↵Ac_K
CheckFreeCommunicationPermission (#1747) * pctl: Implement IsRestrictionEnabled and fix CheckFreeCommunicationPermission * fix comment
2020-11-24am: Fix GetSaveDataSize stub (#1748)Ac_K
2020-11-21am: Cleaning and stub TryPopFromFriendInvitationStorageChannel (#1738)Ac_K
2020-11-21amadeus: Fix reverb 3d mono wrong delay line offset (#1742)Mary
This fix reverb 3d mono rendering using -1 instead of 1 for delay line offset. I also did some clean up as this value is now used by all channel variants. Now Resident Evil 6 goes in-gane.
2020-11-21salieri: remove a wrong debug assert (#1740)Mary
THis assert is wrong and useless now, remove it because it's annoying in Debug.
2020-11-21amadeus: Fix possible underflow in delay time delay effect (#1739)Mary
This fix an underflow in the setup of delay time in the delay effect. THis fix a regression caused by Amadeus on Shovel Knight: Treasure Trove.
2020-11-21audin: fix wrong id ListAudioInsAuto call (#1737)Ac_K