aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/State/ShaderState.cs
blob: 62c7ed4dab2ba1c3637dedcf5dbd10b4e8d64d7f (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
28
29
30
31
32
33
34
35
namespace Ryujinx.Graphics.Gpu.State
{
    /// <summary>
    /// Graphics shader stage state.
    /// </summary>
    struct ShaderState
    {
        public uint       Control;
        public uint       Offset;
        public uint       Unknown0x8;
        public int        MaxRegisters;
        public ShaderType Type;
        public uint       Unknown0x14;
        public uint       Unknown0x18;
        public uint       Unknown0x1c;
        public uint       Unknown0x20;
        public uint       Unknown0x24;
        public uint       Unknown0x28;
        public uint       Unknown0x2c;
        public uint       Unknown0x30;
        public uint       Unknown0x34;
        public uint       Unknown0x38;
        public uint       Unknown0x3c;

        /// <summary>
        /// Unpacks shader enable information.
        /// Must be ignored for vertex shaders, those are always enabled.
        /// </summary>
        /// <returns>True if the stage is enabled, false otherwise</returns>
        public bool UnpackEnable()
        {
            return (Control & 1) != 0;
        }
    }
}