aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-23Vulkan: Fix barriers on macOS (#5700)Isaac Marovitz
* Use old method on macOS * gdk suggestions * Update src/Ryujinx.Graphics.Vulkan/TextureStorage.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Update src/Ryujinx.Graphics.Vulkan/TextureStorage.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2023-09-22[INFRA] Addition of basic contributor guides and docs framework. (#5581)MutantAura
* Addition of basic contributor docs. - Main contributor guide landing page. - C# codestyle doc. - Pull request guide doc. All files and structure heavily inspired by the dotnet/runtime docs: https://github.com/dotnet/runtime/tree/main/docs * fix typos and review changes * Update XML doc requirement & conversation review.
2023-09-20Horizon: Migrate wlan and stubs latest services (#5708)Ac_K
* Horizon: Migrate wlan and stubs latest services This PR migrate empty wlan services, values are found by RE. Latest firmwares added some other services which are now stubbed and up-to-date. * Fix imports ordering
2023-09-19Stub unsupported BSD socket options (#5670)gdkchan
* Stub unsupported BSD socket options * Span.Clear
2023-09-19make cheat list binding public (#5697)Emmanuel Hansen
2023-09-18use compiled bidning for localizations (#5684)Emmanuel Hansen
2023-09-18remove some usages of reflection binding (#5686)Emmanuel Hansen
2023-09-16Replace ShaderOutputLayer with equivalent ShaderViewportIndexLayerEXT ↵gdkchan
capability (#5683)
2023-09-14Fix some Vulkan validation errors (mostly related to barriers) (#5603)gdkchan
* Replace image barriers inside render pass with more generic memory barrier * Remove forceStorage since it was creating images with storage bit for formats that are not StorageImage compatible * Add missing flags on subpass dependency * Don't call vkCmdSetScissor with a scissor count of 0 * One semaphore per swapchain image * Remove compute stage from read to write barriers * Try to improve Pipeline.Barrier nonsense * Set PipelineStateFlags based on supported stages
2023-09-14Fix gl_Layer to geometry shader change not writing gl_Layer (#5682)gdkchan
* Fix gl_Layer to geometry shader change not writing gl_Layer * Shader cache version bump
2023-09-14lbl: Migrate service to Horizon (#5628)Ac_K
* lbl: Migrate service to Horizon * Fix formatting * Addresses gdkchan's feedback * Fix comments
2023-09-11Fix shader GlobalToStorage pass when base address comes from local or shared ↵gdkchan
memory (#5668) * Fix shader GlobalToStorage pass when base address comes from local or shared memory * Shader cache version bump
2023-09-07Replacing 'Assembly.GetExecutingAssembly()' with 'Type.Assembly' (#5545)Marco Carvalho
2023-09-05Delete ResourceAccess (#5626)gdkchan
* Delete ResourceAccess * Set write flag for vertex/geometry as compute output buffers
2023-09-05Add macOS Headless release workflow (#5272)siegmund-heiss-ich
* Add macOS Headless release workflow * Add MACH-O check before applying signature * Rename script for consistency * Remove redundant compiler flag * Fix release.yml arguments + names * Update headless.sh to include changes of pr #5398
2023-09-05Fix ShaderTools GpuAcessor default values (#5646)gdkchan
2023-09-04Fix layer size for 3D textures with NPOT depth (#5640)gdkchan
2023-09-05Use poetry run instead of spawning a shell (#5653)TSRBerry
2023-09-04ci: bump actions/checkout from 3 to 4 (#5650)dependabot[bot]
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04Fix overwriting .ryujinx-mako directory (#5651)TSRBerry
2023-09-04Update reviewers using Ryujinx-Mako command (#5635)TSRBerry
* Update reviewers using Ryujinx-Mako command * Fix worklflow step 'uses' path
2023-09-02Vulkan: Device Local and higher invocation count for buffer conversions (#5623)riperiperi
Just some simple changes to the buffer conversion shaders. (stride conversion, D32S8 to D24S8) The first change is using a device local buffer for converted vertex buffers, since they're only read/written on the GPU. These paths don't trigger on NVIDIA, but if you force them to use it demonstrates the full extent writing to host owned memory from compute absolutely destroys them. AMD GPUs are less heavily affected by this issue, but since the game in question was writing 230MB from compute, I imagine it should have some effect. The second change is allowing the buffer conversion shaders to scale their work group count. While dividing the work between 32 invocations works OK for M1 macs, it's not so great for anything with more cores like AMD GPUs, which should be able to do a lot more parallel copies. Now, it scales by roughly 100 elements per invocation. Some stride change cases could be improved further by either limiting vertex buffer size somehow (reading the index buffer could help, but is always risky) or only updating regions that changed, rather than invalidating the whole thing.
2023-09-01Fix numeric SWKB validation (#5627)Isaac Marovitz
* Fix numeric swkbd validation * GTK
2023-08-30opus: Implement GetWorkBufferSizeExEx and ↵Ac_K
GetWorkBufferSizeForMultiStreamExEx (#5624) * opus: Implement GetWorkBufferSizeExEx and GetWorkBufferSizeForMultiStreamExEx * Fix comments
2023-08-29Geometry shader emulation for macOS (#5551)gdkchan
* Implement vertex and geometry shader conversion to compute * Call InitializeReservedCounts for compute too * PR feedback * Set clip distance mask for geometry and tessellation shaders too * Transform feedback emulation only for vertex
2023-08-29Add SmallChange properties to the rest of the sliders (fixes keyboard ↵MutantAura
input). (#5621)
2023-08-23Vulkan: Fix MoltenVK flickering (#5612)riperiperi
#5576 changed where the position was declared, but forgot to add the Invariant declaration to position when the ReducedPrecision flag was enabled. This was causing weird graphical bugs in a bunch of games, mostly to do with mismatching depth between multiple draws of the same geometry. Maybe the attempt to add it to Position in DeclareInputOrOutput can be removed now, assuming that path is never used.
2023-08-20Fix invalid audio renderer buffer size when end offset < start offset (#5588)gdkchan
* Fix invalid audio renderer buffer size when end offset < start offset * Fix possible overflow on IsSampleOffsetInRangeForPcm
2023-08-19Fix debug assert on services without pointer buffer (#5599)gdkchan
2023-08-18Implement support for masked stencil clears on Vulkan (#5589)gdkchan
* Implement support for masked stencil clears on Vulkan * PR feedback
2023-08-17infra: add missing quotes around @ developers in reviewers.ymlMary
2023-08-17Convert app and installation ids to int (#5587)TSRBerry
2023-08-17mm: Migrate service in Horizon project (#5580)Ac_K
* mm: Migrate service in Horizon project This PR migrate the `mm:u` service to the Horizon project, things were checked by some RE aswell, that's why some vars are renamed, the logic should be the same as before. Tests are welcome. * Lock _sessionList instead * Fix comment * Fix Session fields order
2023-08-16Fix vote and shuffle shader instructions on AMD GPUs (#5540)gdkchan
* Move shuffle handling out of the backend to a transform pass * Handle subgroup sizes higher than 32 * Stop using the subgroup size control extension * Make GenerateShuffleFunction static * Shader cache version bump
2023-08-16Prefer jagged arrays over multidimensional (#5562)Marco Carvalho
* fix CA1814 * Update .editorconfig removing .editorconfig rule
2023-08-16Declare and use gl_PerVertex block for VTG per-vertex built-ins (#5576)gdkchan
* Declare and use gl_PerVertex block for VTG per-vertex built-ins * Shader cache version bump
2023-08-16Vulkan: Periodically free regions of the staging buffer (#5572)riperiperi
* Vulkan: Periodically free regions of the staging buffer There was an edge case where a game could submit tens of thousands of small copies over the course of over half a minute to unique fences. This could result in a large stutter when the staging buffer became full and it tried to check and free thousands of completed fences. This became visible with some games and mirrors on Windows, as they don't submit any buffer data via the staging buffer, but may submit copies of the support buffer. This change makes the Vulkan backend check for staging buffer completion on each command buffer submit, so it can't get backed up with 1000s of copies to check. * Add comment
2023-08-16GPU: Add Z16RUnormGUintBUintAUint Format (#5578)riperiperi
This format seems to be an alias for Z16Unorm used by OpenGL games.
2023-08-16Introduce Mako to fix pr_triage workflow (#5574)TSRBerry
* pr_triage: Fix invalid workflow * Don't assign reviewers to draft PRs * Add team review request for developers team * Introduce Mako to make team reviewers work
2023-08-16Add improved csc problem matcher (#5530)TSRBerry
2023-08-16UI: New Crowdin updates (#4758)Ac_K
* New translations en_US.json (French) 100% * New translations en_US.json (Spanish) 100% * New translations en_US.json (German) 100% * New translations en_US.json (Greek) 94% * New translations en_US.json (Hebrew) 98% * New translations en_US.json (Italian) 100% * New translations en_US.json (Japanese) 100% * New translations en_US.json (Korean) 100% * New translations en_US.json (Polish) 98% * New translations en_US.json (Russian) 100% * New translations en_US.json (Turkish) 100% * New translations en_US.json (Ukrainian) 88% * New translations en_US.json (Chinese Simplified) 100% * New translations en_US.json (Chinese Traditional) 100% * New translations en_US.json (Portuguese, Brazilian) 94%
2023-08-16Implement scaled vertex format emulation (#5564)gdkchan
* Implement scaled vertex format emulation * Auto-format (whitespace) * Delete ToVec4Type
2023-08-14Vulkan: Buffer Mirrors for MacOS performance (#4899)riperiperi
* Initial implementation of buffer mirrors Generally slower right now, goal is to reduce render passes in games that do inline updates Fix support buffer mirrors Reintroduce vertex buffer mirror Add storage buffer support Optimisation part 1 More optimisation Avoid useless data copies. Remove unused cbIndex stuff Properly set write flag for storage buffers. Fix minor issues Not sure why this was here. Fix BufferRangeList Fix some big issues Align storage buffers rather than getting full buffer as a range Improves mirrorability of read-only storage buffers Increase staging buffer size, as it now contains mirrors Fix some issues with buffers not updating Fix buffer SetDataUnchecked offset for one of the paths when using mirrors Fix buffer mirrors interaction with buffer textures Fix mirror rebinding Move GetBuffer calls on indirect draws before BeginRenderPass to avoid draws without render pass Fix mirrors rebase Fix rebase 2023 * Fix crash when using stale vertex buffer Similar to `Get` with a size that's too large, just treat it as a clamp. * Explicitly set support buffer as mirrorable * Address feedback * Remove unused fragment of MVK workaround * Replace logging for staging buffer OOM * Address format issues * Address more format issues * Mini cleanup * Address more things * Rename BufferRangeList * Support bounding range for ClearMirrors and UploadPendingData * Add maximum size for vertex buffer mirrors * Enable index buffer mirrors Enabled on all platforms for the IbStreamer. * Feedback * Remove mystery BufferCache change Probably macos related? * Fix mirrors not creating when staging buffer is empty. * Change log level to debug
2023-08-14Simplify resolution scale updates (#5541)gdkchan
2023-08-14GPU: Track basic buffer copies that modify texture memory (#5554)riperiperi
This branch changes the buffer copy fast path to notify memory tracking for all resources that aren't buffers. This fixes cases where games would copy buffer data directly into texture memory, which before would only work if the texture did not already exist. I imagine this happens when the guest driver is moving data between allocations or uploading it. Since this only affects the fast path, cases where the source data has been modified from GPU (fast path copy destination doesn't count) will still fail to notify the texture, though I don't imagine games will do this. This should be resolved in future. This should fix some texture issues with guest OpenGL games on switch, such as Dragon Quest Builders. This may also be useful in future for games that move shader data around memory, if we end up using memory tracking for those.
2023-08-13Delete ShaderConfig and organize shader resources/definitions better (#5509)gdkchan
* Move some properties out of ShaderConfig * Stop using ShaderConfig on backends * Replace ShaderConfig usages on Translator and passes * Move remaining properties out of ShaderConfig and delete ShaderConfig * Remove ResourceManager property from TranslatorContext * Move Rewriter passes to separate transform pass files * Fix TransformPasses.RunPass on cases where a node is removed * Move remaining ClipDistancePrimitivesWritten and UsedFeatures updates to decode stage * Reduce excessive parameter passing a bit by using structs more * Remove binding parameter from ShaderProperties methods since it is redundant * Replace decoder instruction checks with switch statement * Put GLSL on the same plan as SPIR-V for input/output declaration * Stop mutating TranslatorContext state when Translate is called * Pass most of the graphics state using a struct instead of individual query methods * Auto-format * Auto-format * Add backend logging interface * Auto-format * Remove unnecessary use of interpolated strings * Remove more modifications of AttributeUsage after decode * PR feedback * gl_Layer is not supported on compute
2023-08-13"static readonly" constants should be "const" instead (#5560)Marco Carvalho
* "static readonly" constants should be "const" instead * change fields to PascalCase
2023-08-13Remove animations on listbox items (#5563)MutantAura
2023-08-12Ava UI: Make some settings methods async (#5332)MutantAura
* Ava: Asynchronously load Vulkan device settings items. * Sound checks, timezones and network interface async * Refresh UI items once awaited tasks complete * Remove unused dep * Timezone UI update * Use UIThread dispatcher for thread-unsafe collections + simplify GPU collection. * Remove empty lines * Remove unused string * Dispatch property changes * format changes * format 2 * Use Tasks instead of async void * Make NetworkInterfaceIndex access thread safe.
2023-08-12Ava UI: Allow DPI switching (#5558)riperiperi
ForceDpiAware.Windows has a side effect of forcing the application DPI to be the same as the primary monitor. This isn't good if you have multiple monitors with different DPI. On Avalonia, I don't think there are any downsides to disabling this. When it's disabled, `ForceDpiAware.GetWindowScaleFactor` always returns 1.