mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2024-12-11 09:46:01 +01:00
40b21cc3c4
* 3D engine now uses DeviceState too, plus new state modification tracking * Remove old methods code * Remove GpuState and friends * Optimize DeviceState, force inline some functions * This change was not supposed to go in * Proper channel initialization * Optimize state read/write methods even more * Fix debug build * Do not dirty state if the write is redundant * The YControl register should dirty either the viewport or front face state too, to update the host origin * Avoid redundant vertex buffer updates * Move state and get rid of the Ryujinx.Graphics.Gpu.State namespace * Comments and nits * Fix rebase * PR feedback * Move changed = false to improve codegen * PR feedback * Carry RyuJIT a bit more
57 lines
1.9 KiB
C#
57 lines
1.9 KiB
C#
using Ryujinx.Graphics.GAL;
|
|
|
|
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>
|
|
/// 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>
|
|
public GpuAccessorState(
|
|
ulong texturePoolGpuVa,
|
|
int texturePoolMaximumId,
|
|
int textureBufferIndex,
|
|
bool earlyZForce,
|
|
PrimitiveTopology topology)
|
|
{
|
|
TexturePoolGpuVa = texturePoolGpuVa;
|
|
TexturePoolMaximumId = texturePoolMaximumId;
|
|
TextureBufferIndex = textureBufferIndex;
|
|
EarlyZForce = earlyZForce;
|
|
Topology = topology;
|
|
}
|
|
}
|
|
} |