using Ryujinx.Graphics.Shader;
using System.Runtime.InteropServices;
namespace Ryujinx.Graphics.Gpu.Shader.Cache.Definition
{
///
/// Header of a cached guest gpu accessor.
///
[StructLayout(LayoutKind.Sequential, Size = 0x20, Pack = 1)]
struct GuestGpuAccessorHeader
{
///
/// The count of texture descriptors.
///
public int TextureDescriptorCount;
///
/// Local Size X for compute shaders.
///
public int ComputeLocalSizeX;
///
/// Local Size Y for compute shaders.
///
public int ComputeLocalSizeY;
///
/// Local Size Z for compute shaders.
///
public int ComputeLocalSizeZ;
///
/// Local Memory size in bytes for compute shaders.
///
public int ComputeLocalMemorySize;
///
/// Shared Memory size in bytes for compute shaders.
///
public int ComputeSharedMemorySize;
///
/// Unused/reserved.
///
public int Reserved1;
///
/// Current primitive topology for geometry shaders.
///
public InputTopology PrimitiveTopology;
///
/// Tessellation parameters (packed to fit on a byte).
///
public byte TessellationModePacked;
///
/// Unused/reserved.
///
public byte Reserved2;
///
/// GPU boolean state that can influence shader compilation.
///
public GuestGpuStateFlags StateFlags;
}
}