aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-10-21Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626)gdkchan
* Get rid of Reflection.Emit dependency on CPU and Shader projects * Remove useless private sets * Missed those due to the alignment
2020-10-21Add missing null check on image binding (#1632)gdkchan
2020-10-20Fix image binding format (#1625)gdkchan
* Fix image binding format * XML doc
2020-10-20Ensure storage is set for Buffer Textures when binding an Image. (#1627)riperiperi
2020-10-17Fix gl_in being used with built-in variables that are not per-vertex (#1624)gdkchan
2020-10-16Memory Read/Write Tracking using Region Handles (#1272)riperiperi
* WIP Range Tracking - Texture invalidation seems to have large problems - Buffer/Pool invalidation may have problems - Mirror memory tracking puts an additional `add` in compiled code, we likely just want to make HLE access slower if this is the final solution. - Native project is in the messiest possible location. - [HACK] JIT memory access always uses native "fast" path - [HACK] Trying some things with texture invalidation and views. It works :) Still a few hacks, messy things, slow things More work in progress stuff (also move to memory project) Quite a bit faster now. - Unmapping GPU VA and CPU VA will now correctly update write tracking regions, and invalidate textures for the former. - The Virtual range list is now non-overlapping like the physical one. - Fixed some bugs where regions could leak. - Introduced a weird bug that I still need to track down (consistent invalid buffer in MK8 ribbon road) Move some stuff. I think we'll eventually just put the dll and so for this in a nuget package. Fix rebase. [WIP] MultiRegionHandle variable size ranges - Avoid reprotecting regions that change often (needs some tweaking) - There's still a bug in buffers, somehow. - Might want different api for minimum granularity Fix rebase issue Commit everything needed for software only tracking. Remove native components. Remove more native stuff. Cleanup Use a separate window for the background context, update opentk. (fixes linux) Some experimental changes Should get things working up to scratch - still need to try some things with flush/modification and res scale. Include address with the region action. Initial work to make range tracking work Still a ton of bugs Fix some issues with the new stuff. * Fix texture flush instability There's still some weird behaviour, but it's much improved without this. (textures with cpu modified data were flushing over it) * Find the destination texture for Buffer->Texture full copy Greatly improves performance for nvdec videos (with range tracking) * Further improve texture tracking * Disable Memory Tracking for view parents This is a temporary approach to better match behaviour on master (where invalidations would be soaked up by views, rather than trigger twice) The assumption is that when views are created to a texture, they will cover all of its data anyways. Of course, this can easily be improved in future. * Introduce some tracking tests. WIP * Complete base tests. * Add more tests for multiregion, fix existing test. * Cleanup Part 1 * Remove unnecessary code from memory tracking * Fix some inconsistencies with 3D texture rule. * Add dispose tests. * Use a background thread for the background context. Rather than setting and unsetting a context as current, doing the work on a dedicated thread with signals seems to be a bit faster. Also nerf the multithreading test a bit. * Copy to texture with matching alignment This extends the copy to work for some videos with unusual size, such as tutorial videos in SMO. It will only occur if the destination texture already exists at XCount size. * Track reads for buffer copies. Synchronize new buffers before copying overlaps. * Remove old texture flushing mechanisms. Range tracking all the way, baby. * Wake the background thread when disposing. Avoids a deadlock when games are closed. * Address Feedback 1 * Separate TextureCopy instance for background thread Also `BackgroundContextWorker.InBackground` for a more sensible idenfifier for if we're in a background thread. * Add missing XML docs. * Address Feedback * Maybe I should start drinking coffee. * Some more feedback. * Remove flush warning, Refocus window after making background context
2020-10-13Fix LOP3 (cbuf) shader instruction encoding (#1616)gdkchan
2020-10-14Replace Host FPS with GPU command queue load ("Fifo %") (#1585)riperiperi
* Replace Host FPS with FIFO% * Change measurement order. Improve calculation. Now at 100% when FIFO is blocking game exectution, rather than "0". * Address feedback (1) * Remove Host FPS * FIFO rather than Fifo * Address Ac_k feedback * Rebase
2020-10-13Add Umaal & Vabd_I, Vabdl_I, Vaddl_I, Vhadd, Vqshrn, Vshll inst.s (slow ↵LDj3SNuD
paths). (#1577) * Add Umaal & Vabd_I, Vabdl_I, Vaddl_I, Vhadd, Vqshrn, Vshll inst.s (slow paths). No test provided (i.e. draft). * Ptc InternalVersion = 1577
2020-10-13Fix incorrect GPU GL blend func values (#1612)gdkchan
2020-10-13Fix output component register on pixel shaders (#1613)gdkchan
* Fix output component register on pixel shaders * Clean up usings * Do not advance if no component is enabled for the target, this keeps the previous behavior
2020-10-12Fix error when dual source blend is used (#1610)gdkchan
* Fix error when dual source blend is used * Ensure framebuffer
2020-10-12Implement LEA.HI shader instruction (#1609)gdkchan
2020-10-12Add support for shader constant buffer slot indexing (#1608)gdkchan
* Add support for shader constant buffer slot indexing * Fix typo
2020-10-11Fix H264 output frame size when decoding videos of different sizes (#1606)gdkchan
2020-10-10surfaceflinger: Disable async buffer (#1603)Mary
This fix a mistake I made during my original reimplementation of SurfaceFlinger by disabling async buffer. This fix a memory corruption on Super Mario All-Stars 3D (Super Mario Sunshine & Super Mario Galaxy now go ingame). Thanks to @gdkchan for tracing the memory corruption.
2020-10-10Rollback the CreateExitDialog function that was lost with auto updaterThog
2020-10-10Show confirmation dialog when attempting to close while a game is loaded (#1582)Xpl0itR
2020-10-10Fix exiting emulator with multi programs (#1590)Mary
THis fix a bug introduced in #1560 that would cause "Stop emulation" to actually restart the game all the time.
2020-10-03Improve BRX target detection heuristics (#1591)gdkchan
2020-10-02Supper 2D array ASTC compressed texture formats decoding (#1593)gdkchan
2020-10-01Touch README (#1592)jduncanator
This touches the README to trigger a rebuild of CI.
2020-10-01Fix GetStream implementation (#1588)Mary
Fix wrong argument usage on GetStream. Doesn't change anything as it's not used but a nice catch from jD ^^.
2020-09-30Remove old, unused CPU optimization (#1586)gdkchan
2020-09-29Add Motion controls (#1363)emmauss
* Add motion controls Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * cleanup * add reference orientation and derive relative orientation from it * cleanup * remove unused variable and strange file * Review_2. * change GetInput to TryGetInput * Review_3. Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: LDj3SNuD <dvitiello@gmail.com>
2020-09-29Do not show update being availaible when appveyor is still buildingThog
2020-09-29Convert 1D texture targets to 2D (#1584)gdkchan
* Convert 1D texture targets to 2D * Fix typo * Simplify some code * Should mask that too * Consistency
2020-09-29Appveyor Ryujinx Updater (#1403)MelonSpeedruns
Co-authored-by: Xpl0itR <xpl0itr@outlook.com>
2020-09-28Basic impl of Error Applet (#1551)Ac_K
2020-09-27Always set new texture data for textures initialized by a copy. (#1576)riperiperi
2020-09-25Isolate more services to separate threads (#1573)mageven
* Isolate more services to separate threads * Fix DisplayServer * Add explanation for vi services
2020-09-24Implement small indexed draws and other fixes to make guest Vulkan work (#1558)gdkchan
2020-09-23Return "NotAvailable" when no UserChannel data is present. (#1569)riperiperi
* Return "NotAvailable" when no UserChannel data is present. * Return ObjectInvalid for undefined parameter kinds. * No need to specify which, there's only one. * Just works as a literal string.
2020-09-23Run audren in a separate thread (#1572)mageven
2020-09-22IPC refactor part 1: Use explicit separate threads to process requests (#1447)gdkchan
* Changes to allow explicit management of service threads * Remove now unused code * Remove ThreadCounter, its no longer needed * Allow and use separate server per service, also fix exit issues * New policy change: PTC version now uses PR number
2020-09-21Make viewStorage still valid after view removal. (#1564)riperiperi
2020-09-21hle/ui: Basic multi programs support (#1560)Mary
* hos/gui: Add a check of NCA program index in titleid This add a check to `ApplicationLoader` for the last 2 digits of the game TitleId who seems to be the NCA program index. We currently return the last index, instead of the lower one. Same check is added to ApplicationLibrary in the UI. I've cleaned up both file too. * hle: implement partial relaunch logic TODO: make the emulator auto relauch. * Handle auto relaunch * hle: Unify update usage system * hle: Implement support of multi programs in update system * Add some documentation * Address rip's comment Co-authored-by: Ac_K <Acoustik666@gmail.com>
2020-09-21Align register index between output targets on pixel shaders (#1559)gdkchan
2020-09-20acc/hid: Implement ListQualifiedUsers and SetTouchScreenConfiguration (#1555)Ac_K
* acc/hid: Implement ListQualifiedUsers and SetTouchScreenConfiguration * Fix symbols
2020-09-20Move the open logs folder from setting into the File menu in the main window ↵Xpl0itR
(#1550)
2020-09-20friend: Implement GetCompletionEvent and AddPlayHistory (#1554)Ac_K
2020-09-20am: Stub Begin/EndBlockingHomeButton (#1553)Ac_K
2020-09-20caps: Stub SetShimLibraryVersion (#1552)Ac_K
2020-09-19Fix host stack overflow caused by some recursive guest methods. (#1528)LDj3SNuD
* Fix host stack overflow caused by some recursive guest methods. * PPTC flag up. * Address comments. Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2020-09-19Implement block placement (#1549)FICTURE7
* Implement block placement Implement a simple pass which re-orders cold blocks at the end of the list of blocks in the CFG. * Set PPTC version * Use Array.Resize Address gdkchan's feedback
2020-09-19Better viewport flipping and depth mode detection method (#1556)gdkchan
* Use a better viewport flipping approach * New approach to detect depth mode * nit: Sort method on the OpenGL backend * Adjust spacing on comment * Unswap near and far parameters based on ScaleZ
2020-09-19Correct the threshold for control stick buttons (#1483)Billy Laws
This was tested against HW with https://github.com/Xpl0itR/Input-Test/tree/master/Input-Test and a few changes to record the minimum value axis value when the stick buttons were marked as pressed.
2020-09-13Fix debug Config using res scaling 2x by default (#1546)Mary
As the title say, this restore the value to 1.
2020-09-12Relax block ordering constraints (#1535)FICTURE7
* Relax block ordering constraints Before `block.Next` had to follow `block.ListNext`, now it does not. Instead `CodeGenerator` will now emit the necessary jump instructions to ensure control flow. This makes control flow and block order modifications easier. It also eliminates some simple cases of redundant branches. * Set PPTC version
2020-09-11Allow swizzles to match with "undefined" components (#1538)riperiperi
* Add swizzle matching rules. Improves rules which try to match incompatible formats as perfect, such as D32 float -> R32 float. Remove Format.HasOneComponent, since this information is now available via the FormatInfo struct. * Fix this rule. * Update component counts for depth formats.