aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-03-14GPU: Fast path for adding one texture view to a group (#4528)riperiperi
* GPU: Fast path for adding one texture view to a group Texture group handles must store a list of their overlapping views, so they can be properly notified when a write is detected, and a few other things relating to texture readback. This is generally created when the group is established, with each handle looping over all views to find its overlaps. This whole process was also done when only a single view was added (and no handles were changed), however... Sonic Frontiers had a huge cubemap array with 7350 faces (175 cubemaps * 6 faces * 7 levels), so iterating over both handles and existing views added up very fast. Since we are only adding a single view, we only need to _add_ that view to the existing overlaps, rather than recalculate them all. This greatly improves performance during loading screens and a few seconds into gameplay on the "open zone" sections of Sonic Frontiers. May improve loading times or stutters on some other games. Note that the current texture cache rules will cause these views to fall out of the cache, as there are more than the hard cap, so the cost will be repaid when reloading the open zone. I also added some code to properly remove overlaps when texture views are removed, since it seems that was missing. This can be improved further by only iterating handles that overlap the view (filter by range), but so can a few places in TextureGroup, so better to do all at once. The full generation of overlaps could probably be improved in a similar way. I recommend testing a few games to make sure nothing breaks. * Address feedback
2023-03-14Update range for remapped sparse textures instead of recreating them (#4442)riperiperi
* Update sparsely mapped texture ranges without recreating Important TODO in TexturePool. Smaller TODO: should I look into making textures with views also do this? It needs to be able to detect if the views can be instantly deleted without issue if they're now remapped. * Actually do partial updates * Signal group dirty after mappings changed * Fix various issues (should work now) * Further optimisation Should load a lot less data (16x) when partial updating 3d textures. * Improve stability * Allow granular uploads on large textures, improve rules * Actually avoid updating slices that aren't modified. * Address some feedback, minor optimisation * Small tweak * Refactor DereferenceRequest More specific initialization methods. * Improve code for resetting handles * Explain data loading a bit more * Add some safety for setting null from different threads. All texture sets come from the one thread, but null sets can come from multiple. Only decrement ref count if we succeeded the null set first. * Address feedback 1 * Make a bit safer
2023-03-14Ava UI: `DownloadableContentManager` Refactor (#4300)Isaac Marovitz
* Start refactor * Move around functions * It builds * Menu opens * Buttons * Fix overlapping text * SaveAndClose and Close buttons * Remove button * Layout * It’s a little funky but it works * Enable all/disable all buttons * Fix UpdateCount desyncs * Search bar * Search by title id * Fix fuck ups * Fix selection mode * Update Ryujinx.Ava/UI/ViewModels/DownloadableContentManagerViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/DownloadableContentManagerViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/DownloadableContentManagerViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Fix search bar * Log corrupted DLC json * Fix LibHac changes --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
2023-03-12GPU: Scale counter results before addition (#4471)riperiperi
* GPU: Scale counter results before addition Counter results were being scaled on ReportCounter, which meant that the _total_ value of the counter was being scaled. Not only could this result in very large numbers and weird overflows if the game doesn't clear the counter, but it also caused the result to change drastically. This PR changes scaling to be done when the value is added to the counter on the backend. This should evaluate the scale at the same time as before, on report counter, but avoiding the issue with scaling the total. Fixes scaling in Warioware, at least in the demo, where it seems to compare old/new counters and broke down when scaling was enabled. * Fix issues when result is partially uploaded. Drivers tend to write the low half first, then the high half. Retry if the high half is FFFFFFFF.
2023-03-12Misc: Support space in path on macOS distribution (#4462)TimeZlicer
* . * Apply suggestions from code review Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * wildcard(*) needs to be outside of quotes(") for cp to work --------- Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
2023-03-12Increase access permissions for Ava timezones (#4538)MutantAura
2023-03-12[Flatpak] Beautify multiline strings again & Add full git commit hash (#4535)TSRBerry
* Don't destroy multiline strings * Use full git commit hash
2023-03-12misc: Some dependencies cleanup (#4507)Mary
* Remove dependencies on libraries provided by .NET standard library * Use System.IO.Hashing instead of Crc32.NET
2023-03-11Misc performance tweaks (#4509)jhorv
* use Array.Empty() where instead of allocating new zero-length arrays * structure for loops in a way that the JIT will elide array/Span bounds checking * avoiding function calls in for loop condition tests * avoid LINQ in a hot path * conform with code style * fix mistake in GetNextWaitingObject() * fix GetNextWaitingObject() possibility of returning null if all list items have TimePoint == long.MaxValue * make GetNextWaitingObject() behave FIFO behavior for multiple items with the same TimePoint
2023-03-11gha(release): Attempt to fix flathub pusherMary
2023-03-11gha(release): Hopefully fixes itMary
2023-03-11gha(release): Makes environment variables globalMary
2023-03-11Attempt to fix syntax error of previous mergeMary
2023-03-11[Flatpak] Add release github workflow (#4529)TSRBerry
* Add flatpak release workflow Co-authored-by: Mary <mary@mary.zone> * infra: Update required SDK version to 7.0.200 --------- Co-authored-by: Mary <mary@mary.zone>
2023-03-08CPU: Avoid argument value copies on the JIT (#4484)gdkchan
* Minor refactoring of the pre-allocator * Avoid LoadArgument copies * PPTC version bump
2023-03-04nuget: bump Microsoft.CodeAnalysis.CSharp from 4.4.0 to 4.5.0 (#4488)dependabot[bot]
Bumps [Microsoft.CodeAnalysis.CSharp](https://github.com/dotnet/roslyn) from 4.4.0 to 4.5.0. - [Release notes](https://github.com/dotnet/roslyn/releases) - [Changelog](https://github.com/dotnet/roslyn/blob/main/docs/Breaking%20API%20Changes.md) - [Commits](https://github.com/dotnet/roslyn/commits) --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.CSharp dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-04Minor code formatting (#4498)gdkchan
2023-03-04nuget: bump UnicornEngine.Unicorn (#4500)dependabot[bot]
Bumps [UnicornEngine.Unicorn](https://github.com/unicorn-engine/unicorn) from 2.0.2-rc1-a913199 to 2.0.2-rc1-f7c841d. - [Release notes](https://github.com/unicorn-engine/unicorn/releases) - [Changelog](https://github.com/unicorn-engine/unicorn/blob/master/ChangeLog) - [Commits](https://github.com/unicorn-engine/unicorn/commits) --- updated-dependencies: - dependency-name: UnicornEngine.Unicorn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-04Add post processing feature to the readme (#4499)MetrosexualGarbodor
* Add post processing feature to the readme Adds post processing information to the GPU section in the readme. * correct "Anti-Aliasing"
2023-03-01Update LibHac to 0.18.0 (#4414)Steveice10
* Update LibHac to 0.18.0 * Change instance of AsBytes(CreateReadOnlySpan(...)) to AsReadOnlyByteSpan(...)
2023-02-28Sockets: Properly convert error codes on MacOS (#4491)riperiperi
* Sockets: Properly convert error codes on MacOS The error codes for MacOS are very different to how they are on windows or linux. An alternate mapping is used when the host operating system is MacOS. This PR also defaults IsDhcpEnabled to true when interfaceProperties.DhcpServerAddresses is not available. This change was already in `macos1`. * Address feedback
2023-02-27Add Support for Post Processing Effects (#3616)Emmanuel Hansen
* Add Post Processing Effects * fix events and shader issues * fix gtk upscale slider value * fix bgra games * don't swap swizzle if already swapped * restore opengl texture state after effects run * addressed review * use single pipeline for smaa and fsr * call finish on all pipelines * addressed review * attempt fix file case * attempt fixing file case * fix filter level tick frequency * adjust filter slider margins * replace fxaa shaders with original shader * addressed review
2023-02-26Vulkan: Support list topology primitive restart (#4483)gdkchan
2023-02-25Logging: Redirect StdErr into logging system (#4427)merry
* Logging: Redirect StdErr into logging system * Remove Mono.Unix * Apply suggestions from code review Co-authored-by: riperiperi <rhy3756547@hotmail.com> * Address comments --------- Co-authored-by: Mary <thog@protonmail.com> Co-authored-by: riperiperi <rhy3756547@hotmail.com> Co-authored-by: Mary <mary@mary.zone>
2023-02-25misc: Add missing DefineConstants definition in Ryujinx.CommonMary
Fix flathub and nixpkgs build hopefully now.
2023-02-25macos: Add updater support (#4464)Mary
This is a very basic updater but should be enough for now. --------- Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
2023-02-25chore: Update OpenTK to 4.7.7 (#4478)Mary
2023-02-25Move gl_Layer to vertex shader if geometry is not supported (#4368)gdkchan
* Set gl_Layer on vertex shader if it's set on the geometry shader and it does nothing else * Shader cache version bump * PR feedback * Fix typo
2023-02-25Perform bounds checking before list indexer to avoid frequent exceptions (#4438)jhorv
* Perform bounds checking before list indexer to avoid frequent ArgumentOutOfRangeExceptions * do a single compare after casting id and .Count to uint
2023-02-23Account for multisample when calculating render target size hint (#4467)gdkchan
2023-02-22Fix Title Update Manager not selecting right update (#4452)Isaac Marovitz
2023-02-22nuget: bump Microsoft.NET.Test.Sdk from 17.4.1 to 17.5.0 (#4458)dependabot[bot]
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.4.1 to 17.5.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md) - [Commits](https://github.com/microsoft/vstest/compare/v17.4.1...v17.5.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22nuget: bump UnicornEngine.Unicorn (#4459)dependabot[bot]
Bumps [UnicornEngine.Unicorn](https://github.com/unicorn-engine/unicorn) from 2.0.2-rc1-9c9356d to 2.0.2-rc1-a913199. - [Release notes](https://github.com/unicorn-engine/unicorn/releases) - [Changelog](https://github.com/unicorn-engine/unicorn/blob/master/ChangeLog) - [Commits](https://github.com/unicorn-engine/unicorn/commits) --- updated-dependencies: - dependency-name: UnicornEngine.Unicorn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22Ava: Fix Updater crashing on Linux (#4457)TSRBerry
2023-02-21Add copy dependency for some incompatible texture formats (#4380)gdkchan
* Add copy dependency for some incompatible texture formats * Simplify compatibility check
2023-02-21misc: changes base application directory behaviour (#4460)Mary
This allows changing base application directory behavior at build time via FORCE_EXTERNAL_BASE_DIR. This is intended to be used by nixpkgs and flathub builds. I also added the missing patch for macOS that we have on macos1 to avoid invalidating code signature.
2023-02-21Move Ryujinx Folder from ~/.config to ~/Library/Application Support on macOS ↵Andrew Glaze
(#4296) * Move Ryujinx folder to Application Support on macOS * Create a symlink to preserve back compat Co-authored-by: Ac_K <Acoustik666@gmail.com> * Remove extra whitespace * Don’t create a symlink * Update Ryujinx.Common/Configuration/AppDataManager.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Revert "Don’t create a symlink" This reverts commit 31752fe8aba1deb32e75f949001ffb74a1e0f674. --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
2023-02-21Use SIMD acceleration for audio upsampler (#4410)Logan Stromberg
* Use SIMD acceleration for audio upsampler filter kernel for a moderate speedup * Address formatting. Implement AVX2 fast path for high quality resampling in ResamplerHelper * now really, are we really getting the benefit of inlining 50+ line methods? * adding unit tests for resampler + upsampler. The upsampler ones fail for some reason * Fixing upsampler test. Apparently this algo only works at specific ratios --------- Co-authored-by: Logan Stromberg <lostromb@microsoft.com>
2023-02-21Memory: Faster Split for NonOverlappingRangeList (#4451)riperiperi
I noticed that in Xenoblade 2, the game can end up spending a lot of time adding and removing tracking handles. One of the main causes of this is actually splitting existing handles, which does the following: - Remove existing handle from list - Update existing handle to end at split address, create new handle starting at split address - Add updated handle (left) to list - Add new handle (right) to list This costs 1 deletion and 2 insertions. When there are more handles, this gets a lot more expensive, as insertions are done by copying all values to the right, and deletions by copying values to the left. This PR simply allows it to look up the handle being split, and replace its entry with the new end address without insertion or deletion. This makes a split only cost one insertion and a binary search lookup (very cheap). This isn't all of the cost on Xenoblade 2, but it does significantly reduce it. There might be something else to this - we could find a way to reduce the handle count for the game (merging on deletion? buffer deletion?), we could use a different structure for virtual regions, as the current one is optimal for buffer lookups which nearly always read, memory tracking has more of a balance between read/write. That's for a later date though, this was an easy improvment.
2023-02-21Mark texture as modified and sync on I2M fast path (#4449)gdkchan
2023-02-19Add support for advanced blend (part 1/2) (#2801)gdkchan
* Add blend microcode registers * Add advanced blend support using host extension * Remove debug message * Use pre-generated table for blend functions * XML docs * Rename AdvancedBlendMode to AdvancedBlendOp for consistency * Remove redundant code * Fix some advanced blend related issues on Vulkan * Formatting
2023-02-18nuget: bump System.IdentityModel.Tokens.Jwt from 6.26.1 to 6.27.0 (#4441)dependabot[bot]
Bumps [System.IdentityModel.Tokens.Jwt](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet) from 6.26.1 to 6.27.0. - [Release notes](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/releases) - [Changelog](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/dev/CHANGELOG.md) - [Commits](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/commits) --- updated-dependencies: - dependency-name: System.IdentityModel.Tokens.Jwt dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-16Clear CPU side data on GPU buffer clears (#4125)gdkchan
* Clear CPU side data on GPU buffer clears * Implement tracked fill operation that can signal other resource types except buffer * Fix tests, add missing XML doc * PR feedback
2023-02-16Validate dimensions before creating texture (#4430)gdkchan
2023-02-15GUI: Small Updater refactor & Set correct permissions on Linux when ↵TSRBerry
extracting files (#4315) * ava: Refactor Updater.cs Fix typos Remove unused usings Rename variables to follow naming scheme * ava: Set file permissions when extracting update files * gtk: Apply the same refactor to Updater.cs * updater: Replace assert with if statement * updater: Remove await usings again
2023-02-15vulkan: Respect VK_KHR_portability_subset vertex stride alignment (#4419)Mary
* vulkan: Respect VK_KHR_portability_subset vertex stride alignment We were hardcoding alignment to 4, but by specs it can be any values that is a power of 2. This also enable VK_KHR_portability_subset if present as per specs requirements. * address gdkchan's comment * Make NeedsVertexBufferAlignment internal
2023-02-15vulkan: Clean up MemoryAllocator (#4418)Mary
This started as an attempt to remove vkGetPhysicalDeviceMemoryProperties in FindSuitableMemoryTypeIndex (As this could have some overhead and shouldn't change at runtime) and turned in a little bigger cleanup.
2023-02-14Infra: Issues template cleanup (#4421)Ac_K
* Infra: Issues template cleanup * applied
2023-02-13vulkan: Enforce Vulkan 1.2+ at instance API level and 1.1+ at device level ↵Mary
(#4408) * vulkan: Enforce Vulkan 1.2+ at instance API level and 1.1+ at device level This ensure we don't end up trying to initialize with anything currently incompatible. * Address riperiperi's comment
2023-02-13vulkan: Do not call vkCmdSetViewport when viewportCount is 0 (#4406)Mary
This fix validation error "VUID-vkCmdSetViewport-viewportCount-arraylength".