From aa021085cfab10ab63a7e6c2f9c9e29b4111525c Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 5 May 2023 11:20:20 -0300 Subject: Allow any shader SSBO constant buffer slot and offset (#2237) * Allow any shader SSBO constant buffer slot and offset * Fix slot value passed to SetUsedStorageBuffer on fallback case * Shader cache version * Ensure that the storage buffer source constant buffer offset is word aligned * Fix FirstBinding on GetUniformBufferDescriptors --- src/Ryujinx.Graphics.Shader/BufferDescriptor.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/Ryujinx.Graphics.Shader/BufferDescriptor.cs') diff --git a/src/Ryujinx.Graphics.Shader/BufferDescriptor.cs b/src/Ryujinx.Graphics.Shader/BufferDescriptor.cs index 4ce8a896..410c1991 100644 --- a/src/Ryujinx.Graphics.Shader/BufferDescriptor.cs +++ b/src/Ryujinx.Graphics.Shader/BufferDescriptor.cs @@ -5,13 +5,27 @@ namespace Ryujinx.Graphics.Shader // New fields should be added to the end of the struct to keep disk shader cache compatibility. public readonly int Binding; - public readonly int Slot; + public readonly byte Slot; + public readonly byte SbCbSlot; + public readonly ushort SbCbOffset; public BufferUsageFlags Flags; public BufferDescriptor(int binding, int slot) { Binding = binding; - Slot = slot; + Slot = (byte)slot; + SbCbSlot = 0; + SbCbOffset = 0; + + Flags = BufferUsageFlags.None; + } + + public BufferDescriptor(int binding, int slot, int sbCbSlot, int sbCbOffset) + { + Binding = binding; + Slot = (byte)slot; + SbCbSlot = (byte)sbCbSlot; + SbCbOffset = (ushort)sbCbOffset; Flags = BufferUsageFlags.None; } -- cgit v1.2.3