namespace Ryujinx.Graphics.Gpu.Shader { /// /// State used by the . /// class GpuAccessorState { /// /// Maximum ID that a sampler pool entry may have. /// public readonly int SamplerPoolMaximumId; /// /// GPU texture pool state. /// public readonly GpuChannelPoolState PoolState; /// /// GPU compute state, for compute shaders. /// public readonly GpuChannelComputeState ComputeState; /// /// GPU graphics state, for vertex, tessellation, geometry and fragment shaders. /// public readonly GpuChannelGraphicsState GraphicsState; /// /// Shader specialization state (shared by all stages). /// public readonly ShaderSpecializationState SpecializationState; /// /// Transform feedback information, if the shader uses transform feedback. Otherwise, should be null. /// public readonly TransformFeedbackDescriptor[] TransformFeedbackDescriptors; /// /// Shader resource counts (shared by all stages). /// public readonly ResourceCounts ResourceCounts; /// /// Creates a new GPU accessor state. /// /// Maximum ID that a sampler pool entry may have /// GPU texture pool state /// GPU compute state, for compute shaders /// GPU graphics state, for vertex, tessellation, geometry and fragment shaders /// Shader specialization state (shared by all stages) /// Transform feedback information, if the shader uses transform feedback. Otherwise, should be null public GpuAccessorState( int samplerPoolMaximumId, GpuChannelPoolState poolState, GpuChannelComputeState computeState, GpuChannelGraphicsState graphicsState, ShaderSpecializationState specializationState, TransformFeedbackDescriptor[] transformFeedbackDescriptors = null) { SamplerPoolMaximumId = samplerPoolMaximumId; PoolState = poolState; GraphicsState = graphicsState; ComputeState = computeState; SpecializationState = specializationState; TransformFeedbackDescriptors = transformFeedbackDescriptors; ResourceCounts = new ResourceCounts(); } } }