forked from Mirror/Ryujinx
50 lines
No EOL
1.8 KiB
C#
50 lines
No EOL
1.8 KiB
C#
using System;
|
|
|
|
namespace Ryujinx.Graphics.Gpu.Shader
|
|
{
|
|
/// <summary>
|
|
/// State used by the <see cref="GpuAccessor"/>.
|
|
/// </summary>
|
|
readonly struct GpuChannelPoolState : IEquatable<GpuChannelPoolState>
|
|
{
|
|
/// <summary>
|
|
/// GPU virtual address of the texture pool.
|
|
/// </summary>
|
|
public readonly ulong TexturePoolGpuVa;
|
|
|
|
/// <summary>
|
|
/// Maximum ID of the texture pool.
|
|
/// </summary>
|
|
public readonly int TexturePoolMaximumId;
|
|
|
|
/// <summary>
|
|
/// Constant buffer slot where the texture handles are located.
|
|
/// </summary>
|
|
public readonly int TextureBufferIndex;
|
|
|
|
/// <summary>
|
|
/// Creates a new GPU texture pool 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>
|
|
public GpuChannelPoolState(ulong texturePoolGpuVa, int texturePoolMaximumId, int textureBufferIndex)
|
|
{
|
|
TexturePoolGpuVa = texturePoolGpuVa;
|
|
TexturePoolMaximumId = texturePoolMaximumId;
|
|
TextureBufferIndex = textureBufferIndex;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Check if the pool states are equal.
|
|
/// </summary>
|
|
/// <param name="other">Pool state to compare with</param>
|
|
/// <returns>True if they are equal, false otherwise</returns>
|
|
public bool Equals(GpuChannelPoolState other)
|
|
{
|
|
return TexturePoolGpuVa == other.TexturePoolGpuVa &&
|
|
TexturePoolMaximumId == other.TexturePoolMaximumId &&
|
|
TextureBufferIndex == other.TextureBufferIndex;
|
|
}
|
|
}
|
|
} |