aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-05-17Start GPU performance counter at 0 instead of host GPU value (#4992)1.1.802OpaqueReptile
* Start performance counter at 0 instead of host perf counter value * whitespace * init _firstTimestamp in constructer per feedback * change comment * punctuation * address feedback * revise comment
2023-05-14[GUI] Fix always hide cursor mode not hiding the cursor until it was moved ↵1.1.800TSRBerry
(#4927) * gtk: Add missing isMouseInClient check for hide-cursor * ava: Add missing events and default isCursorInRenderer to true This is necessary because we don't receive a initial PointerEnter event for some reason.
2023-05-13Vulkan: Device map buffers written more than flushed (#4911)1.1.799riperiperi
2023-05-13audio: sdl2: Do not report 5.1 if the device doesn't support it (#4908)1.1.797Mary
* amadeus: adjust VirtualDevice channel configuration reporting with HardwareDevice * audio: sdl2: Do not report 5.1 if device doesn't support it SDL2 5.1 to Stereo conversion is terrible and make everything sound quiet. Let's not expose 5.1 if not truly supported by the device.
2023-05-13Set OpenGL PixelPackBuffer to 0 when done (#4921)1.1.796gdkchan
2023-05-12Ava: Fix wrong MouseButton (#4900)1.1.794Ac_K
2023-05-12Bump shader cache codegen version1.1.793Mary
That was missing from #4892
2023-05-11Vulkan: Partially workaround MoltenVK InvalidResource error (#4880)1.1.792riperiperi
* Add MVK stage flags workaround * Actually do the workaround * Remove GS on VS stuff * Address feedback
2023-05-11GPU: Remove swizzle undefined matching and rework depth aliasing (#4896)1.1.791riperiperi
* GPU: Remove swizzle undefined matching and rework depth aliasing @gdkchan pointed out that UI textures in TOTK seemed to be setting their texture swizzle incorrectly (texture was RGB but was sampling A, swizzle for A was wrong), so I determined that SwizzleComponentMatches was the problem and set on eliminating it. This PR combines existing work to select the most recently modified texture (now used when selecting which aliased texture to use) with some additional changes to remove the swizzle check and support aliased view creation. The original observation (#1538) was that we wanted to match depth textures for the purposes of aliasing with color textures, but they often had different swizzle from what was sampled (as it's generally the identity swizzle once rendered). At the time, I decided to allow swizzles to match if only the defined components matched, which fixed the issue in all known cases but could easily be broken by a game _expecting_ a given swizzle, such as a 1/0 value on a component. This error case could also occur in textures that don't even depth alias, such as R11G11B10, as the rule was created to generally apply to all cases. The solution is now to fail this exact match test, and allow the search for an R32 texture to create a swizzled view of a D32 texture (and other such cases). This allows the creation of a view that mismatches the requested format, which wasn't present before and was the reason for the swizzle matching approach. The exact match and view creation rules now follow the same rules over what textures to select when there are multiple options (such as a "perfect" match and an "aliased" match at the same time). It now selects the most recently modified texture, which is done with a new sequence number in the GpuContext (because we don't have enough of these). Reportedly fixes UI having weird coloured backgrounds in TOTK. This also fixes an issue in MK8D where returning from a race resulted in the character selection cubemaps being broken. May work around issues introduced by the "short texture cache" PR due to modification ordering, though they won't be truly fixed. Should allow (#4365) to avoid copies in more cases. Need to test that. I tested a bunch of games #1538 originally affected and they seem to be fine. This change affects all games so it would be good to get some wide testing on it. * Address feedback 1, fix an issue * Workaround: Do not allow copies for format alias. These should be removed when D32<->R32 copy dependencies become legal
2023-05-12Fix the restart after an update. (#4869)1.1.790John
* Fix the restart after an update. * Fix the updater for the Ava UI too. * Fixing up the code after some change requests. Removed a line of code that was accidentally left in. * Fix restarting on Linux Avalonia. * Fix issues with escaped arguments.
2023-05-12Changed LastPlayed field from string to nullable DateTime (#4861)1.1.789SamusAranX
* Changed LastPlayed field from string to nullable DateTime Added ApplicationData.LastPlayedString property Added NullableDateTimeConverter for the DateTime->string conversion in Avalonia * Added migration from string-based last_played to DateTime-based last_played_utc * Updated comment style * Added MarkupExtension to NullableDateTimeConverter and changed its usage Cleaned up leftover usings * Missed one comment
2023-05-12amadeus: Allow 5.1 sink output (#4894)1.1.788Mary
* amadeus: Allow 5.1 sink output Also add a simple Stereo to 5.1 change for device sink. Tested against NES - Nintendo Switch Online that output stereo on the audio renderer. * Remove outdated comment
2023-05-11UI: Adjust input mapping view (#4866)1.1.787Nico
* refactor: clean up controller settings ui - Remove inconsistencies between left and right side - Use style to set ToggleButton properties (since they are all the same) - Move topmost controller settings from one line to 2x2 grid for improved clarity - Properly adjust borders, text widths, etc. to neighboring elements to eliminate misaligned visual lines * fix: merge issues * fix: prevent sliders from jumping by giving text block fixed width * refactor: add more separators and increase margin * refactor: center deadzone and range descriptions * refactor: move rumble border top margin to -1 and prevent double border * refactor: remove margins & double borders + switch profile & input selection * style: apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
2023-05-11Enable explicit LOD for array textures with depth compare on SPIR-V (#4892)1.1.785gdkchan
2023-05-11Fix incorrect ASTC endpoint color when using LuminanceDelta mode (#4890)1.1.784gdkchan
2023-05-11amadeus: Fix wrong channel mapping check and an old typo (#4888)1.1.783Mary
* amadeus: Fix wrong channel mapping check This was always going to happens, as a result quadratic would break and move index after the channel count point, effectively breaking input/output indices. * amadeus: Fix reverb 3d early delay wrong output index
2023-05-11Stop SDL from inhibiting sleep. (#4842)1.1.782John
2023-05-11Fix the issue of unequal check for amiibo file date due to the lack o… (#4832)1.1.7812435043xia
* Fix the issue of unequal check for amiibo file date due to the lack of sub-second units in the header, causing slow opening of the amiibo interface. * Supplement the unrepaired.
2023-05-11GPU: Fix shader cache assuming past shader data was mapped (#4885)1.1.780riperiperi
This fixes a potential issue where a shader lookup could match the address of a previous _different_ shader, but that shader is now partially unmapped. This would just crash with an invalid region exception. To compare a shader in the address cache with one in memory, we get the memory at the location with the previous shader's size. However, it's possible it has been unmapped and then remapped with a smaller size. In this case, we should just get back the mapped portion of the shader, which will then fail the comparison immediately and get to compile/lookup for the new one. This might fix a random crash in TOTK that was reported by Piplup. I don't know if it does, because I don't have the game yet.
2023-05-10Ensure background translation threads exited before disposing JIT (#4874)1.1.777gdkchan
2023-05-11Fix missing domain service object dispose (#4879)1.1.776gdkchan
2023-05-10fix(mvk): resumeLostDevice (#4800)1.1.775Aaron O'Mullan
Command buffer errors currently trigger an exception "DeviceLost" crashing the process. Looking at [MKV's code](https://github.com/KhronosGroup/MoltenVK/blob/53a4eb26f2fbd7322eb087eb4af263fe466543b0/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm#L392-L408) we observe that: - It hard fails if error is: ``` MTLCommandBufferErrorBlacklisted || MTLCommandBufferErrorNotPermitted || MTLCommandBufferErrorDeviceRemoved ``` - Otherwise fails conditionally if `config.resumeLostDevice == false` (current default) For Ryujinx's use-case it's more graceful to resume on those errors rather than crashing the app, the error isn't totally silenced since `mvk` still logs it Fixes #4704, #4575
2023-05-09IPC - Refactor Bcat service to use new ipc - Revisit (#4803)1.1.774Emmanuel Hansen
* bcat ipc * fix hipc buffer flags * add buffer fixed size flag on generator
2023-05-09Replace DelegateHelper with pre-generated delegates (#4867)1.1.773gdkchan
2023-05-08vulkan: Pass Vk instance to VulkanRenderer (#4859)1.1.772Mary
This will allow possible multiple driver selection without any need of LD preload. (useful when testing custom version of mesa for example)
2023-05-08vulkan: Avoid hardcoding features in CreateDevice (#4858)1.1.771Mary
Those shouldn't have been hardcoded.
2023-05-08Vulkan: Simplify MultiFenceHolder and managing them (#4845)1.1.770riperiperi
* Vulkan: Simplify waitable add/remove Removal of unnecessary hashset and dictionary * Thread safety for GetBufferData in PersistentFlushBuffer * Fix WaitForFencesImpl thread safety * Proper methods for risky reference increments * Wrong type of CB. * Address feedback
2023-05-08Vulkan: Batch vertex buffer updates (#4843)1.1.769riperiperi
* Vulkan: Batch vertex buffer updates Some games can bind a large number of vertex buffers for draws. This PR allows for vertex buffers to be updated with one call rather than one per buffer. This mostly affects the AMD Mesa driver, the testing platform was Steam Deck with Super Mario Odyssey. It was taking about 12% before, should be greatly reduced now. A small optimization has been added to avoid looking up the same buffer multiple times, as a common pattern is for the same buffer to be bound many times in a row with different ranges. * Only rebind vertex buffers if they have changed * Address feedback
2023-05-08misc: Avoid copy of ApplicationControlProperty (#4849)1.1.768Mary
Avoid more giant copy when passing it around.
2023-05-08Ava: Fix SystemTimeOffset calculation (#4848)1.1.767Ac_K
* Ava: Fix SystemTimeOffset calculation During testing of #4822, Mary pointed out the way we calculate time offset is wrong in our Avalonia UI. This PR fixed that. The axaml file is autoformatted too. * DateTime.Now in local var
2023-05-08time: Update for 15.0.0 changes and fixes long standing issues (#4822)1.1.766Mary
* time: Update for 15.0.0 changes Last time we did an upgrade on the time service was during 9.x era, it was about time to take back that reverse again! 15.0.0 added a new structure on the shared memory to get steady clock raw timepoints with a granularity in nanoseconds. This commit implements this new part. I plan to write a follow up with a bit of refactoring of this ancient part of the emulator. As always, reverse and work done by your truly. PS: As a reminder, if this change is reused anywhere else, work should be credited as Ryujinx and not my person. * time: Do not set setup value to posix time This should fix local and network clock returning 0 under usage with shared memory. This probably fix #2430. * Address gdkchan's comment * Fix internal offset not working since changes and ensure that user clock have a valid clock id * time: Report auto correcting clock and hardcode steady clock unique id Fix Pokemon Sword Pokejobs for real. * Address gdkchan's comment
2023-05-07misc: Switch ProcessResult to a class (#4846)1.1.765Mary
This avoid giant copies being performed when being returned or passed.
2023-05-07UI: Expose games build ID for cheat management (#4340)1.1.764gnisman
* Ava UI: Expose games build ID for cheat management * Fix bad merge * Change integrity check level to error on invalid * Add support for GDK * Remove whitespace * Add BID identifier * PR Comments fix * Restore title id in cheats GTK window * use halign center instead of margin_left * Merge * fix after merge * PR comments fix - design AVA * PR fix - Move GetApplicationBuildId to ApplicationData class * PR comment fix - Add empty line before method * Align with PR #4755 * PR comments fix * Change BuildId label to support translation * Comments fix * Remove unused BuildIdLabel property
2023-05-06UI: Add progress bar for re-packaging shaders (#4805)1.1.763Nico
* feat: introduce new shader loading state for progress tracking when writing shaders to disk * fix: move translation to bottom of locale file * fix: change back to foreach and add requested spacing between lines * style: fix formatting Co-authored-by: gdkchan <gab.dark.100@gmail.com> --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2023-05-06AM: Stub some service calls (#4825)1.1.762Ac_K
* AM: Stub some service call Some IPC I have stubbed during private testing and I don't want to deal with them anymore. Nothing more. * ICommonStateGetter disposable
2023-05-05Use correct offset for storage constant buffer elimination (#4821)1.1.761riperiperi
2023-05-05GPU: Remove CPU region handle containers (#4817)1.1.760riperiperi
* GPU: Remove CPU region handle containers. Another one for the "I don't know why I didn't do this earlier" pile. This removes the "Cpu" prefixed region handle classes, which each mirror a region handle type from Ryujinx.Memory. Originally, not all projects had a reference to Ryujinx.Memory, so these classes were introduced to bridge the gap. Someone else crossed that bridge since, so these classes don't have much of a purpose anymore. This PR replaces all uses of CpuRegionHandle etc to their direct Ryujinx.Memory versions. RegionHandle methods (specifically QueryModified) are about the hottest path there is in the entire emulator, so there is a nice boost from doing this. * Add docs
2023-05-05UI: Fix sections extraction (#4820)1.1.759Ac_K
* UI: Fix sections extraction There is currently an issue when the update NCA doesn't contains the section we want to extract, this is fixed by adding a check. I have fixed the inverted handler of ExeFs/Logo introduced in #4755. Fixes #4521 * Addresses feedback
2023-05-05Correct tooltips for add,remove,removeall buttons (#4819)1.1.758ashuk
2023-05-05Fix typo in TextureBindingsManager.cs (#4798)1.1.757Ikko Eltociear Ashimine
accomodate -> accommodate
2023-05-05Use ToLowerInvariant when detecting GPU vendor. (#4815)1.1.756Skyth (Asilkan)
2023-05-05Allow any shader SSBO constant buffer slot and offset (#2237)1.1.755gdkchan
* Allow any shader SSBO constant buffer slot and offset * Fix slot value passed to SetUsedStorageBuffer on fallback case * Shader cache version * Ensure that the storage buffer source constant buffer offset is word aligned * Fix FirstBinding on GetUniformBufferDescriptors
2023-05-05GPU: Allow granular buffer updates from the constant buffer updater (#4749)1.1.754riperiperi
* GPU: Allow granular buffer updates from the constant buffer updater Sometimes, constant buffer updates can't be avoided, either due to a cb0 access that cannot be eliminated, or the game updating a buffer between draws to the detriment of everyone. To avoid uploading the full 4096 bytes each time, this PR remembers the offset and size containing all constant buffer updates since the last sync. It will then upload that range after sync. * Allow clearing the dirty range * Always use precise Might want to not do this if distance between the existing range and new one is too high. * Use old force dirty mechanism when distance between regions is too great * Update src/Ryujinx.Graphics.Gpu/Memory/Buffer.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Fix inheritance of _dirtyStart and _dirtyEnd --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2023-05-05ModLoader: Fix case sensitivy issues without breaking cheats (#4783)1.1.753TSRBerry
* Fix case sensitivity for mod subdirectories * Small refactoring of ModLoader * Don't share instruction list between all cheats Co-authored-by: riperiperi <rhy3756547@hotmail.com> --------- Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2023-05-04Revert "bcat ipc (#4446)" (#4801)1.1.751gdkchan
This reverts commit 42507323535443ad79be071367f3d4815afca688.
2023-05-04UI: Move ApplicationContextMenu in a separated class (#4755)1.1.750Ac_K
* UI: Move ApplicationContextMenu in a separated class This PR remove duplicated code related to the context menu on the Application list/grid by create a control for the menu which include related handler. I've renamed "GameList/GameGrid" by "Application" for consistencies. And I've removed all uneeded field from the project file too. While I cleaned up things, I've found an issue about purging Ptc/Shader cache, both methods list files even if the user say "No", shader cache is purged even if the user say "No". It's fixed. * Adresses feedbacks
2023-05-04bcat ipc (#4446)1.1.749Emmanuel Hansen
2023-05-03Fix some invalid blits involving depth textures (#4723)1.1.748gdkchan
2023-05-03Update SettingsWindow.cs (#4785)1.1.747Erdem Keskin
fix saving if directory path directly pasted in to the text field instead of using FileChooser.
2023-05-03Revert "ModLoader: Fix case sensitivy issues (#4720)" (#4781)1.1.746Mary
This reverts commit cc1a933a2f4adf05a45c7adcf02669c4f423bedb.