diff options
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs')
-rw-r--r-- | Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs b/Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs new file mode 100644 index 00000000..9b1af8fb --- /dev/null +++ b/Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs @@ -0,0 +1,67 @@ +using System.Runtime.InteropServices; +using Ryujinx.Graphics.Shader; + +namespace Ryujinx.Graphics.Gpu.Shader.Cache.Definition +{ + /// <summary> + /// Host shader entry header used for binding information. + /// </summary> + [StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x14)] + struct HostShaderCacheEntryHeader + { + /// <summary> + /// Count of constant buffer descriptors. + /// </summary> + public int CBuffersCount; + + /// <summary> + /// Count of storage buffer descriptors. + /// </summary> + public int SBuffersCount; + + /// <summary> + /// Count of texture descriptors. + /// </summary> + public int TexturesCount; + + /// <summary> + /// Count of image descriptors. + /// </summary> + public int ImagesCount; + + /// <summary> + /// Set to true if the shader uses instance id. + /// </summary> + [MarshalAs(UnmanagedType.I1)] + public bool UsesInstanceId; + + /// <summary> + /// Set to true if this entry is in use. + /// </summary> + [MarshalAs(UnmanagedType.I1)] + public bool InUse; + + /// <summary> + /// Reserved / unused. + /// </summary> + public short Reserved; + + /// <summary> + /// Create a new host shader cache entry header. + /// </summary> + /// <param name="cBuffersCount">Count of constant buffer descriptors</param> + /// <param name="sBuffersCount">Count of storage buffer descriptors</param> + /// <param name="texturesCount">Count of texture descriptors</param> + /// <param name="imagesCount">Count of image descriptors</param> + /// <param name="usesInstanceId">Set to true if the shader uses instance id</param> + public HostShaderCacheEntryHeader(int cBuffersCount, int sBuffersCount, int texturesCount, int imagesCount, bool usesInstanceId) : this() + { + CBuffersCount = cBuffersCount; + SBuffersCount = sBuffersCount; + TexturesCount = texturesCount; + ImagesCount = imagesCount; + UsesInstanceId = usesInstanceId; + InUse = true; + } + } +} |