From 53d096e392d85106a41d8edad1dcda5cce7446a2 Mon Sep 17 00:00:00 2001 From: gdkchan <gab.dark.100@gmail.com> Date: Sun, 26 May 2024 13:30:19 -0300 Subject: Allow texture arrays to use separate descriptor sets on Vulkan (#6870) * 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 --- src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs') diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs b/src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs index 23f1a64e..edaae304 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs @@ -124,6 +124,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading Register<SetUniformBuffersCommand>(CommandType.SetUniformBuffers); Register<SetImageCommand>(CommandType.SetImage); Register<SetImageArrayCommand>(CommandType.SetImageArray); + Register<SetImageArraySeparateCommand>(CommandType.SetImageArraySeparate); Register<SetIndexBufferCommand>(CommandType.SetIndexBuffer); Register<SetLineParametersCommand>(CommandType.SetLineParameters); Register<SetLogicOpStateCommand>(CommandType.SetLogicOpState); @@ -141,6 +142,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading Register<SetStencilTestCommand>(CommandType.SetStencilTest); Register<SetTextureAndSamplerCommand>(CommandType.SetTextureAndSampler); Register<SetTextureArrayCommand>(CommandType.SetTextureArray); + Register<SetTextureArraySeparateCommand>(CommandType.SetTextureArraySeparate); Register<SetUserClipDistanceCommand>(CommandType.SetUserClipDistance); Register<SetVertexAttribsCommand>(CommandType.SetVertexAttribs); Register<SetVertexBuffersCommand>(CommandType.SetVertexBuffers); -- cgit v1.2.3-70-g09d2