aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Gpu/Shader/GpuChannelComputeState.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Shader/GpuChannelComputeState.cs')
-rw-r--r--src/Ryujinx.Graphics.Gpu/Shader/GpuChannelComputeState.cs65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Shader/GpuChannelComputeState.cs b/src/Ryujinx.Graphics.Gpu/Shader/GpuChannelComputeState.cs
new file mode 100644
index 00000000..b65dd75e
--- /dev/null
+++ b/src/Ryujinx.Graphics.Gpu/Shader/GpuChannelComputeState.cs
@@ -0,0 +1,65 @@
+namespace Ryujinx.Graphics.Gpu.Shader
+{
+ /// <summary>
+ /// State used by the <see cref="GpuAccessor"/>.
+ /// </summary>
+ readonly struct GpuChannelComputeState
+ {
+ // New fields should be added to the end of the struct to keep disk shader cache compatibility.
+
+ /// <summary>
+ /// Local group size X of the compute shader.
+ /// </summary>
+ public readonly int LocalSizeX;
+
+ /// <summary>
+ /// Local group size Y of the compute shader.
+ /// </summary>
+ public readonly int LocalSizeY;
+
+ /// <summary>
+ /// Local group size Z of the compute shader.
+ /// </summary>
+ public readonly int LocalSizeZ;
+
+ /// <summary>
+ /// Local memory size of the compute shader.
+ /// </summary>
+ public readonly int LocalMemorySize;
+
+ /// <summary>
+ /// Shared memory size of the compute shader.
+ /// </summary>
+ public readonly int SharedMemorySize;
+
+ /// <summary>
+ /// Indicates that any storage buffer use is unaligned.
+ /// </summary>
+ public readonly bool HasUnalignedStorageBuffer;
+
+ /// <summary>
+ /// Creates a new GPU compute state.
+ /// </summary>
+ /// <param name="localSizeX">Local group size X of the compute shader</param>
+ /// <param name="localSizeY">Local group size Y of the compute shader</param>
+ /// <param name="localSizeZ">Local group size Z of the compute shader</param>
+ /// <param name="localMemorySize">Local memory size of the compute shader</param>
+ /// <param name="sharedMemorySize">Shared memory size of the compute shader</param>
+ /// <param name="hasUnalignedStorageBuffer">Indicates that any storage buffer use is unaligned</param>
+ public GpuChannelComputeState(
+ int localSizeX,
+ int localSizeY,
+ int localSizeZ,
+ int localMemorySize,
+ int sharedMemorySize,
+ bool hasUnalignedStorageBuffer)
+ {
+ LocalSizeX = localSizeX;
+ LocalSizeY = localSizeY;
+ LocalSizeZ = localSizeZ;
+ LocalMemorySize = localMemorySize;
+ SharedMemorySize = sharedMemorySize;
+ HasUnalignedStorageBuffer = hasUnalignedStorageBuffer;
+ }
+ }
+} \ No newline at end of file