From 4218311e6aa2a6b134e56f4206f9ef87d863419e Mon Sep 17 00:00:00 2001 From: riperiperi Date: Sat, 17 Feb 2024 00:41:30 +0000 Subject: 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. --- src/Ryujinx.Graphics.Vulkan/PipelineBase.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Ryujinx.Graphics.Vulkan/PipelineBase.cs') diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs index 3aef1317..3b3f5925 100644 --- a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs +++ b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs @@ -976,7 +976,7 @@ namespace Ryujinx.Graphics.Vulkan _program = internalProgram; - _descriptorSetUpdater.SetProgram(internalProgram); + _descriptorSetUpdater.SetProgram(Cbs, internalProgram, _currentPipelineHandle != 0); _newState.PipelineLayout = internalProgram.PipelineLayout; _newState.StagesCount = (uint)stages.Length; -- cgit v1.2.3