namespace Ryujinx.Graphics.Shader { public enum ShaderStage : byte { Compute, Vertex, TessellationControl, TessellationEvaluation, Geometry, Fragment, Count, } public static class ShaderStageExtensions { /// /// Checks if the shader stage supports render scale. /// /// Shader stage /// True if the shader stage supports render scale, false otherwise public static bool SupportsRenderScale(this ShaderStage stage) { return stage is ShaderStage.Vertex or ShaderStage.Fragment or ShaderStage.Compute; } /// /// Checks if the shader stage is vertex, tessellation or geometry. /// /// Shader stage /// True if the shader stage is vertex, tessellation or geometry, false otherwise public static bool IsVtg(this ShaderStage stage) { return stage is ShaderStage.Vertex or ShaderStage.TessellationControl or ShaderStage.TessellationEvaluation or ShaderStage.Geometry; } } }