aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
AgeCommit message (Collapse)Author
2024-07-17Vulkan: Defer guest barriers, and improve image barrier timings (#7012)riperiperi
* More guarantees for buffer correct placement, defer guest requested buffers * Split RP on indirect barrier rn * Better handling for feedback loops. * Qualcomm barriers suck too * Fix condition * Remove unused field * Allow render pass barriers on turnip for now
2024-07-10Use draw clear on Adreno, instead of vkCmdClearAttachments (#7013)gdkchan
* Use draw clear on Adreno, instead of vkCmdClearAttachments * Fix GTX TITAN detection
2024-07-07Disable descriptor set template updates for buffer textures on Adreno (#7002)gdkchan
* Do not use template updates for buffer textures and buffer images * No need to do it for images * Simply buffer texture existence check * Pipeline is now unused on DescriptorSetUpdater
2024-06-02Vulkan separate descriptor set fixes (#6895)gdkchan
* Ensure descriptor sets are only re-used when all command buffers using it have completed * Fix some SPIR-V capabilities * Set update after bind flag if we exceed limits * Simpler fix for Intel * Format whitespace * Make struct readonly * Add barriers for extra set arrays too
2024-05-26Allow texture arrays to use separate descriptor sets on Vulkan (#6870)gdkchan
* Report base and extra sets from the backend * Pass texture set index everywhere * Key textures using set and binding (rather than just binding) * Start using extra sets for array textures * Shader cache version bump * Separate new commands, some PR feedback * Introduce new manual descriptor set reservation method that prevents it from being used by something else while owned by an array * Move bind extra sets logic to new method * Should only use separate array is MaximumExtraSets is not zero * Format whitespace
2024-04-07Add support for large sampler arrays on Vulkan (#6489)gdkchan
* Add support for large sampler arrays on Vulkan * Shader cache version bump * Format whitespace * Move DescriptorSetManager to PipelineLayoutCacheEntry to allow different pool sizes per layout * Handle array textures with different types on the same buffer * Somewhat better caching system * Avoid useless buffer data modification checks * Move redundant bindings update checking to the backend * Fix an issue where texture arrays would get the same bindings across stages on Vulkan * Backport some fixes from part 2 * Fix typo * PR feedback * Format whitespace * Add some missing XML docs
2024-04-06Vulkan: Skip draws when patches topology is used without a tessellation ↵gdkchan
shader (#6508)
2024-03-26Disable push descriptors for Intel ARC GPUs on Windows (#6551)gdkchan
* Move some init logic out of PrintGpuInformation, then delete it * Disable push descriptors for Intel ARC on Windows * Re-add PrintGpuInformation just to show it in the log
2024-02-21Vulkan: Disable push descriptors on older NVIDIA GPUs (#6340)riperiperi
Disables push descriptors on older NVIDIA GPUs (10xx and below), since it is clearly broken beyond comprehension. The existing workaround wasn't good enough and a more thorough one will probably cost more performance than the feature gains. The workaround has been removed. Fixes #6331.
2024-02-16Vulkan: Use push descriptors for uniform bindings when possible (#6154)riperiperi
* Fix Push Descriptors * Use push descriptor templates * Use reserved bindings * Formatting * Disable when using MVK ("my heart will go on" starts playing as thousands of mac users shed a tear in unison) * Introduce limit on push descriptor binding number The bitmask used for updating push descriptors is ulong, so only 64 bindings can be tracked for now. * Address feedback * Fix logic for binding rejection Should only offset limit when reserved bindings are less than the requested one. * Workaround pascal and older nv bug * Add GPU number detection for nvidia * Only do workaround if it's valid to do so.
2024-01-26Allow skipping draws with broken pipeline variants on Vulkan (#5807)gdkchan
* Allow skipping draws with broken pipeline variants on Vulkan * Move IsLinked check to CreatePipeline * Restore throw on error behaviour for background compile * Can't remove SetAlphaTest pragmas yet * Double new line
2024-01-20Vulkan: Use templates for descriptor updates (#6014)riperiperi
* WIP: Descriptor template update * Make configurable * Wording * Simplify template creation * Whitespace * UTF-8 whatever * Leave only templated path, better template updater
2023-12-04editorconfig: Set default encoding to UTF-8 (#5793)TSRBerry
* editorconfig: Add default charset * Change file encoding from UTF-8-BOM to UTF-8
2023-09-26Reduce the amount of descriptor pool allocations on Vulkan (#5673)gdkchan
* Reduce the amount of descriptor pool allocations on Vulkan * Formatting * Slice can be simplified * Make GetDescriptorPoolSizes static * Adjust CanFit calculation so that TryAllocateDescriptorSets never fails * Remove unused field
2023-09-05Delete ResourceAccess (#5626)gdkchan
* Delete ResourceAccess * Set write flag for vertex/geometry as compute output buffers
2023-07-01[Ryujinx.Graphics.Vulkan] Address dotnet-format issues (#5378)TSRBerry
* dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0059 warnings * Address dotnet format CA1816 warnings * Fix new dotnet-format issues after rebase * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Format if-blocks correctly * Another rebase, another dotnet format run * Run dotnet format whitespace after rebase * Run dotnet format style after rebase * Run dotnet format analyzers after rebase * Run dotnet format style after rebase * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Disable 'prefer switch expression' rule * Add comments to disabled warnings * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Run dotnet format after rebase * Address IDE0251 warnings * Address a few disabled IDE0060 warnings * Silence IDE0060 in .editorconfig * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * First dotnet format pass * Fix naming rule violations * Remove redundant code * Rename generics * Address review feedback * Remove SetOrigin
2023-06-23"Exists" method should be used instead of the "Any" extension (#5345)Marco Carvalho
2023-06-10Implement transform feedback emulation for hardware without native support ↵gdkchan
(#5080) * Implement transform feedback emulation for hardware without native support * Stop doing some useless buffer updates and account for non-zero base instance * Reduce redundant updates even more * Update descriptor init logic to account for ResourceLayout * Fix transform feedback and storage buffers not being updated in some cases * Shader cache version bump * PR feedback * SetInstancedDrawVertexCount must be always called after UpdateState * Minor typo
2023-05-21Replace ShaderBindings with new ResourceLayout structure for Vulkan (#5025)gdkchan
* Introduce ResourceLayout * Part 1: Use new ResourceSegments array on UpdateAndBind * Part 2: Use ResourceLayout to build PipelineLayout * Delete old code * XML docs * Fix shader cache load NRE * Fix typo
2023-04-27Move solution and projects to srcTSR Berry