mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-12-28 17:11:20 -08:00
7e967d796c
* Stop using glTransformFeedbackVarying and use explicit layout on the shader * This is no longer needed * Shader cache version bump * Fix gl_PerVertex output for tessellation control shaders
72 lines
2.5 KiB
C#
72 lines
2.5 KiB
C#
using Ryujinx.Graphics.GAL;
|
|
using Ryujinx.Graphics.Gpu.Engine.Threed;
|
|
|
|
namespace Ryujinx.Graphics.Gpu.Shader
|
|
{
|
|
/// <summary>
|
|
/// State used by the <see cref="GpuAccessor"/>.
|
|
/// </summary>
|
|
struct GpuAccessorState
|
|
{
|
|
/// <summary>
|
|
/// GPU virtual address of the texture pool.
|
|
/// </summary>
|
|
public ulong TexturePoolGpuVa { get; }
|
|
|
|
/// <summary>
|
|
/// Maximum ID of the texture pool.
|
|
/// </summary>
|
|
public int TexturePoolMaximumId { get; }
|
|
|
|
/// <summary>
|
|
/// Constant buffer slot where the texture handles are located.
|
|
/// </summary>
|
|
public int TextureBufferIndex { get; }
|
|
|
|
/// <summary>
|
|
/// Early Z force enable.
|
|
/// </summary>
|
|
public bool EarlyZForce { get; }
|
|
|
|
/// <summary>
|
|
/// Primitive topology of current draw.
|
|
/// </summary>
|
|
public PrimitiveTopology Topology { get; }
|
|
|
|
/// <summary>
|
|
/// Tessellation mode.
|
|
/// </summary>
|
|
public TessMode TessellationMode { get; }
|
|
|
|
/// <summary>
|
|
/// Transform feedback information, if the shader uses transform feedback. Otherwise, should be null.
|
|
/// </summary>
|
|
public TransformFeedbackDescriptor[] TransformFeedbackDescriptors { get; set; }
|
|
|
|
/// <summary>
|
|
/// Creates a new instance of the GPU accessor state.
|
|
/// </summary>
|
|
/// <param name="texturePoolGpuVa">GPU virtual address of the texture pool</param>
|
|
/// <param name="texturePoolMaximumId">Maximum ID of the texture pool</param>
|
|
/// <param name="textureBufferIndex">Constant buffer slot where the texture handles are located</param>
|
|
/// <param name="earlyZForce">Early Z force enable</param>
|
|
/// <param name="topology">Primitive topology</param>
|
|
/// <param name="tessellationMode">Tessellation mode</param>
|
|
public GpuAccessorState(
|
|
ulong texturePoolGpuVa,
|
|
int texturePoolMaximumId,
|
|
int textureBufferIndex,
|
|
bool earlyZForce,
|
|
PrimitiveTopology topology,
|
|
TessMode tessellationMode)
|
|
{
|
|
TexturePoolGpuVa = texturePoolGpuVa;
|
|
TexturePoolMaximumId = texturePoolMaximumId;
|
|
TextureBufferIndex = textureBufferIndex;
|
|
EarlyZForce = earlyZForce;
|
|
Topology = topology;
|
|
TessellationMode = tessellationMode;
|
|
TransformFeedbackDescriptors = null;
|
|
}
|
|
}
|
|
} |