mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2025-02-02 21:12:55 -06:00
c6f8bfed90
* Add support for bindless textures from shader input (vertex buffer) * Shader cache version bump * Format whitespace * Remove cache entries on pool removal, disable for OpenGL * PR feedback
70 lines
2.8 KiB
C#
70 lines
2.8 KiB
C#
namespace Ryujinx.Graphics.Gpu.Shader
|
|
{
|
|
/// <summary>
|
|
/// State used by the <see cref="GpuAccessor"/>.
|
|
/// </summary>
|
|
class GpuAccessorState
|
|
{
|
|
/// <summary>
|
|
/// Maximum ID that a sampler pool entry may have.
|
|
/// </summary>
|
|
public readonly int SamplerPoolMaximumId;
|
|
|
|
/// <summary>
|
|
/// GPU texture pool state.
|
|
/// </summary>
|
|
public readonly GpuChannelPoolState PoolState;
|
|
|
|
/// <summary>
|
|
/// GPU compute state, for compute shaders.
|
|
/// </summary>
|
|
public readonly GpuChannelComputeState ComputeState;
|
|
|
|
/// <summary>
|
|
/// GPU graphics state, for vertex, tessellation, geometry and fragment shaders.
|
|
/// </summary>
|
|
public readonly GpuChannelGraphicsState GraphicsState;
|
|
|
|
/// <summary>
|
|
/// Shader specialization state (shared by all stages).
|
|
/// </summary>
|
|
public readonly ShaderSpecializationState SpecializationState;
|
|
|
|
/// <summary>
|
|
/// Transform feedback information, if the shader uses transform feedback. Otherwise, should be null.
|
|
/// </summary>
|
|
public readonly TransformFeedbackDescriptor[] TransformFeedbackDescriptors;
|
|
|
|
/// <summary>
|
|
/// Shader resource counts (shared by all stages).
|
|
/// </summary>
|
|
public readonly ResourceCounts ResourceCounts;
|
|
|
|
/// <summary>
|
|
/// Creates a new GPU accessor state.
|
|
/// </summary>
|
|
/// <param name="samplerPoolMaximumId">Maximum ID that a sampler pool entry may have</param>
|
|
/// <param name="poolState">GPU texture pool state</param>
|
|
/// <param name="computeState">GPU compute state, for compute shaders</param>
|
|
/// <param name="graphicsState">GPU graphics state, for vertex, tessellation, geometry and fragment shaders</param>
|
|
/// <param name="specializationState">Shader specialization state (shared by all stages)</param>
|
|
/// <param name="transformFeedbackDescriptors">Transform feedback information, if the shader uses transform feedback. Otherwise, should be null</param>
|
|
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();
|
|
}
|
|
}
|
|
}
|