From 1df6c07f78c4c3b8c7fc679d7466f79a10c2d496 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Mon, 4 Dec 2023 16:30:19 -0300 Subject: Implement support for multi-range buffers using Vulkan sparse mappings (#5427) * Pass MultiRange to BufferManager * Implement support for multi-range buffers using Vulkan sparse mappings * Use multi-range for remaining buffers, delete old methods * Assume that more buffers are contiguous * Dispose multi-range buffers after they are removed from the list * Properly init BufferBounds for constant and storage buffers * Do not try reading zero bytes data from an unmapped address on the shader cache + PR feedback * Fix misaligned sparse buffer offsets * Null check can be simplified * PR feedback --- src/Ryujinx.Graphics.GAL/Capabilities.cs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/Ryujinx.Graphics.GAL/Capabilities.cs') diff --git a/src/Ryujinx.Graphics.GAL/Capabilities.cs b/src/Ryujinx.Graphics.GAL/Capabilities.cs index 8959bf93..dc927eab 100644 --- a/src/Ryujinx.Graphics.GAL/Capabilities.cs +++ b/src/Ryujinx.Graphics.GAL/Capabilities.cs @@ -23,6 +23,7 @@ namespace Ryujinx.Graphics.GAL public readonly bool SupportsR4G4B4A4Format; public readonly bool SupportsScaledVertexFormats; public readonly bool SupportsSnormBufferTextureFormat; + public readonly bool SupportsSparseBuffer; public readonly bool Supports5BitComponentFormat; public readonly bool SupportsBlendEquationAdvanced; public readonly bool SupportsFragmentShaderInterlock; @@ -79,6 +80,7 @@ namespace Ryujinx.Graphics.GAL bool supportsScaledVertexFormats, bool supportsSnormBufferTextureFormat, bool supports5BitComponentFormat, + bool supportsSparseBuffer, bool supportsBlendEquationAdvanced, bool supportsFragmentShaderInterlock, bool supportsFragmentShaderOrderingIntel, @@ -130,6 +132,7 @@ namespace Ryujinx.Graphics.GAL SupportsScaledVertexFormats = supportsScaledVertexFormats; SupportsSnormBufferTextureFormat = supportsSnormBufferTextureFormat; Supports5BitComponentFormat = supports5BitComponentFormat; + SupportsSparseBuffer = supportsSparseBuffer; SupportsBlendEquationAdvanced = supportsBlendEquationAdvanced; SupportsFragmentShaderInterlock = supportsFragmentShaderInterlock; SupportsFragmentShaderOrderingIntel = supportsFragmentShaderOrderingIntel; -- cgit v1.2.3