HostShaderCacheEntryHeader.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System.Runtime.InteropServices;
  2. using Ryujinx.Graphics.Shader;
  3. namespace Ryujinx.Graphics.Gpu.Shader.Cache.Definition
  4. {
  5. /// <summary>
  6. /// Host shader entry header used for binding information.
  7. /// </summary>
  8. [StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x14)]
  9. struct HostShaderCacheEntryHeader
  10. {
  11. /// <summary>
  12. /// Count of constant buffer descriptors.
  13. /// </summary>
  14. public int CBuffersCount;
  15. /// <summary>
  16. /// Count of storage buffer descriptors.
  17. /// </summary>
  18. public int SBuffersCount;
  19. /// <summary>
  20. /// Count of texture descriptors.
  21. /// </summary>
  22. public int TexturesCount;
  23. /// <summary>
  24. /// Count of image descriptors.
  25. /// </summary>
  26. public int ImagesCount;
  27. /// <summary>
  28. /// Set to true if the shader uses instance id.
  29. /// </summary>
  30. [MarshalAs(UnmanagedType.I1)]
  31. public bool UsesInstanceId;
  32. /// <summary>
  33. /// Set to true if this entry is in use.
  34. /// </summary>
  35. [MarshalAs(UnmanagedType.I1)]
  36. public bool InUse;
  37. /// <summary>
  38. /// Reserved / unused.
  39. /// </summary>
  40. public short Reserved;
  41. /// <summary>
  42. /// Create a new host shader cache entry header.
  43. /// </summary>
  44. /// <param name="cBuffersCount">Count of constant buffer descriptors</param>
  45. /// <param name="sBuffersCount">Count of storage buffer descriptors</param>
  46. /// <param name="texturesCount">Count of texture descriptors</param>
  47. /// <param name="imagesCount">Count of image descriptors</param>
  48. /// <param name="usesInstanceId">Set to true if the shader uses instance id</param>
  49. public HostShaderCacheEntryHeader(int cBuffersCount, int sBuffersCount, int texturesCount, int imagesCount, bool usesInstanceId) : this()
  50. {
  51. CBuffersCount = cBuffersCount;
  52. SBuffersCount = sBuffersCount;
  53. TexturesCount = texturesCount;
  54. ImagesCount = imagesCount;
  55. UsesInstanceId = usesInstanceId;
  56. InUse = true;
  57. }
  58. }
  59. }