diff options
| author | riperiperi <rhy3756547@hotmail.com> | 2024-02-17 00:41:30 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-16 21:41:30 -0300 |
| commit | 4218311e6aa2a6b134e56f4206f9ef87d863419e (patch) | |
| tree | 5f08a48c00545dd100b91eb520e6bebe5083e021 /src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs | |
| parent | e37735ed2630a807c709d2d3e2099f6c1f2b10fe (diff) | |
Vulkan: Use push descriptors for uniform bindings when possible (#6154)
* 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.
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs')
| -rw-r--r-- | src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs b/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs index 98c777ee..b6694bcb 100644 --- a/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs +++ b/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs @@ -34,6 +34,7 @@ namespace Ryujinx.Graphics.Vulkan public readonly bool SupportsMultiView; public readonly bool SupportsNullDescriptors; public readonly bool SupportsPushDescriptors; + public readonly uint MaxPushDescriptors; public readonly bool SupportsPrimitiveTopologyListRestart; public readonly bool SupportsPrimitiveTopologyPatchListRestart; public readonly bool SupportsTransformFeedback; @@ -71,6 +72,7 @@ namespace Ryujinx.Graphics.Vulkan bool supportsMultiView, bool supportsNullDescriptors, bool supportsPushDescriptors, + uint maxPushDescriptors, bool supportsPrimitiveTopologyListRestart, bool supportsPrimitiveTopologyPatchListRestart, bool supportsTransformFeedback, @@ -107,6 +109,7 @@ namespace Ryujinx.Graphics.Vulkan SupportsMultiView = supportsMultiView; SupportsNullDescriptors = supportsNullDescriptors; SupportsPushDescriptors = supportsPushDescriptors; + MaxPushDescriptors = maxPushDescriptors; SupportsPrimitiveTopologyListRestart = supportsPrimitiveTopologyListRestart; SupportsPrimitiveTopologyPatchListRestart = supportsPrimitiveTopologyPatchListRestart; SupportsTransformFeedback = supportsTransformFeedback; |
