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();
}
}
}