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 }