aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/ShaderCapabilities.cs
blob: 809481b50dec84761ca5e545c5985186c614ce81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace Ryujinx.Graphics.Shader
{
    public struct ShaderCapabilities
    {
        // Initialize with default values for Maxwell.
        private static readonly ShaderCapabilities _default = new ShaderCapabilities(0x8000, 0xc000, 16, true);

        public static ShaderCapabilities Default => _default;

        public int  MaximumViewportDimensions        { get; }
        public int  MaximumComputeSharedMemorySize   { get; }
        public int  StorageBufferOffsetAlignment     { get; }
        public bool SupportsNonConstantTextureOffset { get; }

        public ShaderCapabilities(
            int  maximumViewportDimensions,
            int  maximumComputeSharedMemorySize,
            int  storageBufferOffsetAlignment,
            bool supportsNonConstantTextureOffset)
        {
            MaximumViewportDimensions        = maximumViewportDimensions;
            MaximumComputeSharedMemorySize   = maximumComputeSharedMemorySize;
            StorageBufferOffsetAlignment     = storageBufferOffsetAlignment;
            SupportsNonConstantTextureOffset = supportsNonConstantTextureOffset;
        }
    }
}