patch.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "common/common_types.h"
  5. namespace Shader::IR {
  6. enum class Patch : u64 {
  7. TessellationLodLeft,
  8. TessellationLodTop,
  9. TessellationLodRight,
  10. TessellationLodBottom,
  11. TessellationLodInteriorU,
  12. TessellationLodInteriorV,
  13. ComponentPadding0,
  14. ComponentPadding1,
  15. Component0,
  16. Component1,
  17. Component2,
  18. Component3,
  19. Component4,
  20. Component5,
  21. Component6,
  22. Component7,
  23. Component8,
  24. Component9,
  25. Component10,
  26. Component11,
  27. Component12,
  28. Component13,
  29. Component14,
  30. Component15,
  31. Component16,
  32. Component17,
  33. Component18,
  34. Component19,
  35. Component20,
  36. Component21,
  37. Component22,
  38. Component23,
  39. Component24,
  40. Component25,
  41. Component26,
  42. Component27,
  43. Component28,
  44. Component29,
  45. Component30,
  46. Component31,
  47. Component32,
  48. Component33,
  49. Component34,
  50. Component35,
  51. Component36,
  52. Component37,
  53. Component38,
  54. Component39,
  55. Component40,
  56. Component41,
  57. Component42,
  58. Component43,
  59. Component44,
  60. Component45,
  61. Component46,
  62. Component47,
  63. Component48,
  64. Component49,
  65. Component50,
  66. Component51,
  67. Component52,
  68. Component53,
  69. Component54,
  70. Component55,
  71. Component56,
  72. Component57,
  73. Component58,
  74. Component59,
  75. Component60,
  76. Component61,
  77. Component62,
  78. Component63,
  79. Component64,
  80. Component65,
  81. Component66,
  82. Component67,
  83. Component68,
  84. Component69,
  85. Component70,
  86. Component71,
  87. Component72,
  88. Component73,
  89. Component74,
  90. Component75,
  91. Component76,
  92. Component77,
  93. Component78,
  94. Component79,
  95. Component80,
  96. Component81,
  97. Component82,
  98. Component83,
  99. Component84,
  100. Component85,
  101. Component86,
  102. Component87,
  103. Component88,
  104. Component89,
  105. Component90,
  106. Component91,
  107. Component92,
  108. Component93,
  109. Component94,
  110. Component95,
  111. Component96,
  112. Component97,
  113. Component98,
  114. Component99,
  115. Component100,
  116. Component101,
  117. Component102,
  118. Component103,
  119. Component104,
  120. Component105,
  121. Component106,
  122. Component107,
  123. Component108,
  124. Component109,
  125. Component110,
  126. Component111,
  127. Component112,
  128. Component113,
  129. Component114,
  130. Component115,
  131. Component116,
  132. Component117,
  133. Component118,
  134. Component119,
  135. };
  136. static_assert(static_cast<u64>(Patch::Component119) == 127);
  137. [[nodiscard]] bool IsGeneric(Patch patch) noexcept;
  138. [[nodiscard]] u32 GenericPatchIndex(Patch patch);
  139. [[nodiscard]] u32 GenericPatchElement(Patch patch);
  140. } // namespace Shader::IR