/ src / Ryujinx.Graphics.Shader / ShaderStage.cs
ShaderStage.cs
 1  namespace Ryujinx.Graphics.Shader
 2  {
 3      public enum ShaderStage : byte
 4      {
 5          Compute,
 6          Vertex,
 7          TessellationControl,
 8          TessellationEvaluation,
 9          Geometry,
10          Fragment,
11  
12          Count,
13      }
14  
15      public static class ShaderStageExtensions
16      {
17          /// <summary>
18          /// Checks if the shader stage supports render scale.
19          /// </summary>
20          /// <param name="stage">Shader stage</param>
21          /// <returns>True if the shader stage supports render scale, false otherwise</returns>
22          public static bool SupportsRenderScale(this ShaderStage stage)
23          {
24              return stage == ShaderStage.Vertex || stage == ShaderStage.Fragment || stage == ShaderStage.Compute;
25          }
26  
27          /// <summary>
28          /// Checks if the shader stage is vertex, tessellation or geometry.
29          /// </summary>
30          /// <param name="stage">Shader stage</param>
31          /// <returns>True if the shader stage is vertex, tessellation or geometry, false otherwise</returns>
32          public static bool IsVtg(this ShaderStage stage)
33          {
34              return stage == ShaderStage.Vertex ||
35                     stage == ShaderStage.TessellationControl ||
36                     stage == ShaderStage.TessellationEvaluation ||
37                     stage == ShaderStage.Geometry;
38          }
39      }
40  }