aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/State/ShaderState.cs
blob: 4cf67c746986b28a4f258500e38a21053bb645fc (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
36
37
namespace Ryujinx.Graphics.Gpu.State
{
    /// <summary>
    /// Graphics shader stage state.
    /// </summary>
    struct ShaderState
    {
#pragma warning disable CS0649
        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;
#pragma warning restore CS0649

        /// <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;
        }
    }
}