ReflectSystemComponent.cpp 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <Atom/RHI.Reflect/AttachmentEnums.h>
  9. #include <Atom/RHI.Reflect/AttachmentLoadStoreAction.h>
  10. #include <Atom/RHI.Reflect/Base.h>
  11. #include <Atom/RHI.Reflect/BufferDescriptor.h>
  12. #include <Atom/RHI.Reflect/BufferPoolDescriptor.h>
  13. #include <Atom/RHI.Reflect/BufferScopeAttachmentDescriptor.h>
  14. #include <Atom/RHI.Reflect/ClearValue.h>
  15. #include <Atom/RHI.Reflect/Format.h>
  16. #include <Atom/RHI.Reflect/Handle.h>
  17. #include <Atom/RHI.Reflect/ImageDescriptor.h>
  18. #include <Atom/RHI.Reflect/ImagePoolDescriptor.h>
  19. #include <Atom/RHI.Reflect/ImageScopeAttachmentDescriptor.h>
  20. #include <Atom/RHI.Reflect/ImageSubresource.h>
  21. #include <Atom/RHI.Reflect/IndirectBufferLayout.h>
  22. #include <Atom/RHI.Reflect/Origin.h>
  23. #include <Atom/RHI.Reflect/RenderStates.h>
  24. #include <Atom/RHI.Reflect/PipelineLayoutDescriptor.h>
  25. #include <Atom/RHI.Reflect/PipelineLibraryData.h>
  26. #include <Atom/RHI.Reflect/ReflectSystemComponent.h>
  27. #include <Atom/RHI.Reflect/RenderAttachmentLayout.h>
  28. #include <Atom/RHI.Reflect/ResolveScopeAttachmentDescriptor.h>
  29. #include <Atom/RHI.Reflect/Scissor.h>
  30. #include <Atom/RHI.Reflect/ScopeAttachmentDescriptor.h>
  31. #include <Atom/RHI.Reflect/ShaderDataMappings.h>
  32. #include <Atom/RHI.Reflect/ShaderResourceGroupLayout.h>
  33. #include <Atom/RHI.Reflect/ShaderStageFunction.h>
  34. #include <Atom/RHI.Reflect/StreamingImagePoolDescriptor.h>
  35. #include <Atom/RHI.Reflect/InputStreamLayout.h>
  36. #include <Atom/RHI.Reflect/Viewport.h>
  37. #include <Atom/RHI.Reflect/PlatformLimitsDescriptor.h>
  38. #include <Atom/RHI.Reflect/PhysicalDeviceDescriptor.h>
  39. #include <AzCore/Serialization/SerializeContext.h>
  40. namespace AZ::RHI
  41. {
  42. void ReflectSystemComponent::Reflect(AZ::ReflectContext* context)
  43. {
  44. if (SerializeContext* serializeContext = azrtti_cast<SerializeContext*>(context))
  45. {
  46. serializeContext->Class<ReflectSystemComponent, AZ::Component>()
  47. ->Version(3);
  48. }
  49. ReflectNamedEnums(context);
  50. //////////////////////////////////////////////////////////////////////////
  51. // Pipeline State
  52. RasterState::Reflect(context);
  53. StencilOpState::Reflect(context);
  54. StencilState::Reflect(context);
  55. DepthState::Reflect(context);
  56. DepthStencilState::Reflect(context);
  57. TargetBlendState::Reflect(context);
  58. BlendState::Reflect(context);
  59. MultisampleState::Reflect(context);
  60. RenderStates::Reflect(context);
  61. PipelineLibraryData::Reflect(context);
  62. ReflectRenderStateEnums(context);
  63. ReflectSamplerStateEnums(context);
  64. //////////////////////////////////////////////////////////////////////////
  65. //////////////////////////////////////////////////////////////////////////
  66. // RenderAttachmentConfiguration
  67. RenderAttachmentConfiguration::Reflect(context);
  68. //////////////////////////////////////////////////////////////////////////
  69. //////////////////////////////////////////////////////////////////////////
  70. // InputStreamLayout
  71. ShaderSemantic::Reflect(context);
  72. StreamChannelDescriptor::Reflect(context);
  73. StreamBufferDescriptor::Reflect(context);
  74. InputStreamLayout::Reflect(context);
  75. //////////////////////////////////////////////////////////////////////////
  76. //////////////////////////////////////////////////////////////////////////
  77. // ShaderResourceGroup
  78. SamplerState::Reflect(context);
  79. ShaderInputBufferDescriptor::Reflect(context);
  80. ShaderInputImageDescriptor::Reflect(context);
  81. ShaderInputBufferUnboundedArrayDescriptor::Reflect(context);
  82. ShaderInputImageUnboundedArrayDescriptor::Reflect(context);
  83. ShaderInputSamplerDescriptor::Reflect(context);
  84. ShaderInputConstantDescriptor::Reflect(context);
  85. ShaderInputStaticSamplerDescriptor::Reflect(context);
  86. ShaderResourceGroupLayout::Reflect(context);
  87. ShaderDataMappings::Reflect(context);
  88. //////////////////////////////////////////////////////////////////////////
  89. //////////////////////////////////////////////////////////////////////////
  90. // Shader
  91. ShaderStageFunction::Reflect(context);
  92. //////////////////////////////////////////////////////////////////////////
  93. //////////////////////////////////////////////////////////////////////////
  94. // PipelineLayout
  95. PipelineLayoutDescriptor::Reflect(context);
  96. //////////////////////////////////////////////////////////////////////////
  97. //////////////////////////////////////////////////////////////////////////
  98. // Resource pool Descriptors
  99. ResourcePoolDescriptor::Reflect(context);
  100. ImagePoolDescriptor::Reflect(context);
  101. BufferPoolDescriptor::Reflect(context);
  102. StreamingImagePoolDescriptor::Reflect(context);
  103. //////////////////////////////////////////////////////////////////////////
  104. //////////////////////////////////////////////////////////////////////////
  105. // Attachments
  106. AttachmentLoadStoreAction::Reflect(context);
  107. ScopeAttachmentDescriptor::Reflect(context);
  108. //////////////////////////////////////////////////////////////////////////
  109. //////////////////////////////////////////////////////////////////////////
  110. // Buffers
  111. BufferDescriptor::Reflect(context);
  112. BufferViewDescriptor::Reflect(context);
  113. //////////////////////////////////////////////////////////////////////////
  114. //////////////////////////////////////////////////////////////////////////
  115. // Images
  116. ImageDescriptor::Reflect(context);
  117. ImageScopeAttachmentDescriptor::Reflect(context);
  118. ImageViewDescriptor::Reflect(context);
  119. ImageSubresource::Reflect(context);
  120. ImageSubresourceRange::Reflect(context);
  121. DeviceImageSubresourceLayout::Reflect(context);
  122. //////////////////////////////////////////////////////////////////////////
  123. //////////////////////////////////////////////////////////////////////////
  124. // Resolve MSAA attachments
  125. ResolveScopeAttachmentDescriptor::Reflect(context);
  126. //////////////////////////////////////////////////////////////////////////
  127. //////////////////////////////////////////////////////////////////////////
  128. // Indirect buffer Layout
  129. IndirectBufferLayout::Reflect(context);
  130. //////////////////////////////////////////////////////////////////////////
  131. //////////////////////////////////////////////////////////////////////////
  132. // Misc
  133. ClearValue::Reflect(context);
  134. Size::Reflect(context);
  135. Interval::Reflect(context);
  136. Viewport::Reflect(context);
  137. Scissor::Reflect(context);
  138. HeapPagingParameters::Reflect(context);
  139. HeapMemoryHintParameters::Reflect(context);
  140. TransientAttachmentPoolBudgets::Reflect(context);
  141. PlatformLimits::Reflect(context);
  142. PlatformLimitsDescriptor::Reflect(context);
  143. Origin::Reflect(context);
  144. ReflectVendorIdEnums(context);
  145. PhysicalDeviceDriverValidator::Reflect(context);
  146. Handle<uint64_t>::Reflect(context);
  147. Handle<uint32_t>::Reflect(context);
  148. Handle<uint16_t>::Reflect(context);
  149. Handle<uint8_t>::Reflect(context);
  150. Handle<int64_t>::Reflect(context);
  151. Handle<int32_t>::Reflect(context);
  152. Handle<int16_t>::Reflect(context);
  153. Handle<int8_t>::Reflect(context);
  154. //////////////////////////////////////////////////////////////////////////
  155. }
  156. void ReflectSystemComponent::ReflectNamedEnums(AZ::ReflectContext* context)
  157. {
  158. // Currently, we only add the named enums we need for json serialization here
  159. SerializeContext* serializeContext = azrtti_cast<SerializeContext*>(context);
  160. if (!serializeContext)
  161. {
  162. return;
  163. }
  164. serializeContext->Enum<DrawListSortType>()
  165. ->Value("KeyThenDepth", DrawListSortType::KeyThenDepth)
  166. ->Value("KeyThenReverseDepth", DrawListSortType::KeyThenReverseDepth)
  167. ->Value("DepthThenKey", DrawListSortType::DepthThenKey)
  168. ->Value("ReverseDepthThenKey", DrawListSortType::ReverseDepthThenKey)
  169. ;
  170. serializeContext->Enum<ScopeAttachmentAccess>()
  171. ->Value("Read", ScopeAttachmentAccess::Read)
  172. ->Value("Write", ScopeAttachmentAccess::Write)
  173. ->Value("ReadWrite", ScopeAttachmentAccess::ReadWrite)
  174. ;
  175. serializeContext->Enum<AttachmentLifetimeType>()
  176. ->Value("Imported", AttachmentLifetimeType::Imported)
  177. ->Value("Transient", AttachmentLifetimeType::Transient)
  178. ;
  179. serializeContext->Enum<ScopeAttachmentUsage>()
  180. ->Value("RenderTarget", ScopeAttachmentUsage::RenderTarget)
  181. ->Value("DepthStencil", ScopeAttachmentUsage::DepthStencil)
  182. ->Value("Shader", ScopeAttachmentUsage::Shader)
  183. ->Value("Copy", ScopeAttachmentUsage::Copy)
  184. ->Value("Resolve", ScopeAttachmentUsage::Resolve)
  185. ->Value("Predication", ScopeAttachmentUsage::Predication)
  186. ->Value("Indirect", ScopeAttachmentUsage::Indirect)
  187. ->Value("SubpassInput", ScopeAttachmentUsage::SubpassInput)
  188. ->Value("InputAssembly", ScopeAttachmentUsage::InputAssembly)
  189. ->Value("ShadingRate", ScopeAttachmentUsage::ShadingRate)
  190. ;
  191. serializeContext->Enum<ScopeAttachmentStage>()
  192. ->Value("VertexShader", ScopeAttachmentStage::VertexShader)
  193. ->Value("FragmentShader", ScopeAttachmentStage::FragmentShader)
  194. ->Value("ComputeShader", ScopeAttachmentStage::ComputeShader)
  195. ->Value("RayTracingShader", ScopeAttachmentStage::RayTracingShader)
  196. ->Value("EarlyFragmentTest", ScopeAttachmentStage::EarlyFragmentTest)
  197. ->Value("LateFragmentTest", ScopeAttachmentStage::LateFragmentTest)
  198. ->Value("ColorAttachmentOutput", ScopeAttachmentStage::ColorAttachmentOutput)
  199. ->Value("Copy", ScopeAttachmentStage::Copy)
  200. ->Value("Predication", ScopeAttachmentStage::Predication)
  201. ->Value("DrawIndirect", ScopeAttachmentStage::DrawIndirect)
  202. ->Value("VertexInput", ScopeAttachmentStage::VertexInput)
  203. ->Value("ShadingRate", ScopeAttachmentStage::ShadingRate)
  204. ->Value("AnyGraphics", ScopeAttachmentStage::AnyGraphics)
  205. ->Value("Any", ScopeAttachmentStage::Any)
  206. ;
  207. serializeContext->Enum<HardwareQueueClass>()
  208. ->Value("Graphics", HardwareQueueClass::Graphics)
  209. ->Value("Compute", HardwareQueueClass::Compute)
  210. ->Value("Copy", HardwareQueueClass::Copy)
  211. ;
  212. serializeContext->Enum<HardwareQueueClassMask>()
  213. ->Value("None", HardwareQueueClassMask::None)
  214. ->Value("Graphics", HardwareQueueClassMask::Graphics)
  215. ->Value("Compute", HardwareQueueClassMask::Compute)
  216. ->Value("Copy", HardwareQueueClassMask::Copy)
  217. ->Value("All", HardwareQueueClassMask::All)
  218. ;
  219. serializeContext->Enum<AttachmentLoadAction>()
  220. ->Value("Load", AttachmentLoadAction::Load)
  221. ->Value("Clear", AttachmentLoadAction::Clear)
  222. ->Value("DontCare", AttachmentLoadAction::DontCare)
  223. ;
  224. serializeContext->Enum<AttachmentStoreAction>()
  225. ->Value("Store", AttachmentStoreAction::Store)
  226. ->Value("DontCare", AttachmentStoreAction::DontCare)
  227. ;
  228. serializeContext->Enum<AttachmentType>()
  229. ->Value("Image", AttachmentType::Image)
  230. ->Value("Buffer", AttachmentType::Buffer)
  231. ->Value("Resolve", AttachmentType::Resolve)
  232. ;
  233. serializeContext->Enum<HeapMemoryLevel>()
  234. ->Value("Host", HeapMemoryLevel::Host)
  235. ->Value("Device", HeapMemoryLevel::Device)
  236. ;
  237. serializeContext->Enum<HostMemoryAccess>()
  238. ->Value("Write", HostMemoryAccess::Write)
  239. ->Value("Read", HostMemoryAccess::Read)
  240. ;
  241. serializeContext->Enum<BufferBindFlags>()
  242. ->Value("None", BufferBindFlags::None)
  243. ->Value("InputAssembly", BufferBindFlags::InputAssembly)
  244. ->Value("DynamicInputAssembly", BufferBindFlags::DynamicInputAssembly)
  245. ->Value("Constant", BufferBindFlags::Constant)
  246. ->Value("CopyRead", BufferBindFlags::CopyRead)
  247. ->Value("CopyWrite", BufferBindFlags::CopyWrite)
  248. ->Value("ShaderRead", BufferBindFlags::ShaderRead)
  249. ->Value("ShaderWrite", BufferBindFlags::ShaderWrite)
  250. ->Value("ShaderReadWrite", BufferBindFlags::ShaderReadWrite)
  251. ;
  252. serializeContext->Enum<ImageBindFlags>()
  253. ->Value("None", ImageBindFlags::None)
  254. ->Value("Color", ImageBindFlags::Color)
  255. ->Value("CopyRead", ImageBindFlags::CopyRead)
  256. ->Value("CopyWrite", ImageBindFlags::CopyWrite)
  257. ->Value("Depth", ImageBindFlags::Depth)
  258. ->Value("Stencil", ImageBindFlags::Stencil)
  259. ->Value("DepthStencil", ImageBindFlags::DepthStencil)
  260. ->Value("ShaderRead", ImageBindFlags::ShaderRead)
  261. ->Value("ShaderWrite", ImageBindFlags::ShaderWrite)
  262. ->Value("ShaderReadWrite", ImageBindFlags::ShaderReadWrite)
  263. ->Value("ShadingRate", ImageBindFlags::ShadingRate)
  264. ;
  265. serializeContext->Enum<ImageAspectFlags>()
  266. ->Value("None", ImageAspectFlags::None)
  267. ->Value("Color", ImageAspectFlags::Color)
  268. ->Value("Depth", ImageAspectFlags::Depth)
  269. ->Value("Stencil", ImageAspectFlags::Stencil)
  270. ->Value("DepthStencil", ImageAspectFlags::DepthStencil)
  271. ->Value("All", ImageAspectFlags::All)
  272. ;
  273. serializeContext->Enum<Format>()
  274. ->Value("R32G32B32A32_FLOAT", Format::R32G32B32A32_FLOAT)
  275. ->Value("R32G32B32A32_UINT", Format::R32G32B32A32_UINT)
  276. ->Value("R32G32B32A32_SINT", Format::R32G32B32A32_SINT)
  277. ->Value("R32G32B32_FLOAT", Format::R32G32B32_FLOAT)
  278. ->Value("R32G32B32_UINT", Format::R32G32B32_UINT)
  279. ->Value("R32G32B32_SINT", Format::R32G32B32_SINT)
  280. ->Value("R16G16B16A16_FLOAT", Format::R16G16B16A16_FLOAT)
  281. ->Value("R16G16B16A16_UNORM", Format::R16G16B16A16_UNORM)
  282. ->Value("R16G16B16A16_UINT", Format::R16G16B16A16_UINT)
  283. ->Value("R16G16B16A16_SNORM", Format::R16G16B16A16_SNORM)
  284. ->Value("R16G16B16A16_SINT", Format::R16G16B16A16_SINT)
  285. ->Value("R32G32_FLOAT", Format::R32G32_FLOAT)
  286. ->Value("R32G32_UINT", Format::R32G32_UINT)
  287. ->Value("R32G32_SINT", Format::R32G32_SINT)
  288. ->Value("D32_FLOAT_S8X24_UINT", Format::D32_FLOAT_S8X24_UINT)
  289. ->Value("R10G10B10A2_UNORM", Format::R10G10B10A2_UNORM)
  290. ->Value("R10G10B10A2_UINT", Format::R10G10B10A2_UINT)
  291. ->Value("R11G11B10_FLOAT", Format::R11G11B10_FLOAT)
  292. ->Value("R8G8B8A8_UNORM", Format::R8G8B8A8_UNORM)
  293. ->Value("R8G8B8A8_UNORM_SRGB", Format::R8G8B8A8_UNORM_SRGB)
  294. ->Value("R8G8B8A8_UINT", Format::R8G8B8A8_UINT)
  295. ->Value("R8G8B8A8_SNORM", Format::R8G8B8A8_SNORM)
  296. ->Value("R8G8B8A8_SINT", Format::R8G8B8A8_SINT)
  297. ->Value("R16G16_FLOAT", Format::R16G16_FLOAT)
  298. ->Value("R16G16_UNORM", Format::R16G16_UNORM)
  299. ->Value("R16G16_UINT", Format::R16G16_UINT)
  300. ->Value("R16G16_SNORM", Format::R16G16_SNORM)
  301. ->Value("R16G16_SINT", Format::R16G16_SINT)
  302. ->Value("D32_FLOAT", Format::D32_FLOAT)
  303. ->Value("R32_FLOAT", Format::R32_FLOAT)
  304. ->Value("R32_UINT", Format::R32_UINT)
  305. ->Value("R32_SINT", Format::R32_SINT)
  306. ->Value("D24_UNORM_S8_UINT", Format::D24_UNORM_S8_UINT)
  307. ->Value("R8G8_UNORM", Format::R8G8_UNORM)
  308. ->Value("R8G8_UINT", Format::R8G8_UINT)
  309. ->Value("R8G8_SNORM", Format::R8G8_SNORM)
  310. ->Value("R8G8_SINT", Format::R8G8_SINT)
  311. ->Value("R16_FLOAT", Format::R16_FLOAT)
  312. ->Value("D16_UNORM", Format::D16_UNORM)
  313. ->Value("R16_UNORM", Format::R16_UNORM)
  314. ->Value("R16_UINT", Format::R16_UINT)
  315. ->Value("R16_SNORM", Format::R16_SNORM)
  316. ->Value("R16_SINT", Format::R16_SINT)
  317. ->Value("R8_UNORM", Format::R8_UNORM)
  318. ->Value("R8_UINT", Format::R8_UINT)
  319. ->Value("R8_SNORM", Format::R8_SNORM)
  320. ->Value("R8_SINT", Format::R8_SINT)
  321. ->Value("A8_UNORM", Format::A8_UNORM)
  322. ->Value("R1_UNORM", Format::R1_UNORM)
  323. ->Value("R9G9B9E5_SHAREDEXP", Format::R9G9B9E5_SHAREDEXP)
  324. ->Value("R8G8_B8G8_UNORM", Format::R8G8_B8G8_UNORM)
  325. ->Value("G8R8_G8B8_UNORM", Format::G8R8_G8B8_UNORM)
  326. ->Value("BC1_UNORM", Format::BC1_UNORM)
  327. ->Value("BC1_UNORM_SRGB", Format::BC1_UNORM_SRGB)
  328. ->Value("BC2_UNORM", Format::BC2_UNORM)
  329. ->Value("BC2_UNORM_SRGB", Format::BC2_UNORM_SRGB)
  330. ->Value("BC3_UNORM", Format::BC3_UNORM)
  331. ->Value("BC3_UNORM_SRGB", Format::BC3_UNORM_SRGB)
  332. ->Value("BC4_UNORM", Format::BC4_UNORM)
  333. ->Value("BC4_SNORM", Format::BC4_SNORM)
  334. ->Value("BC5_UNORM", Format::BC5_UNORM)
  335. ->Value("BC5_SNORM", Format::BC5_SNORM)
  336. ->Value("B5G6R5_UNORM", Format::B5G6R5_UNORM)
  337. ->Value("B5G5R5A1_UNORM", Format::B5G5R5A1_UNORM)
  338. ->Value("B8G8R8A8_UNORM", Format::B8G8R8A8_UNORM)
  339. ->Value("B8G8R8X8_UNORM", Format::B8G8R8X8_UNORM)
  340. ->Value("R10G10B10_XR_BIAS_A2_UNORM", Format::R10G10B10_XR_BIAS_A2_UNORM)
  341. ->Value("B8G8R8A8_UNORM_SRGB", Format::B8G8R8A8_UNORM_SRGB)
  342. ->Value("B8G8R8X8_UNORM_SRGB", Format::B8G8R8X8_UNORM_SRGB)
  343. ->Value("BC6H_UF16", Format::BC6H_UF16)
  344. ->Value("BC6H_SF16", Format::BC6H_SF16)
  345. ->Value("BC7_UNORM", Format::BC7_UNORM)
  346. ->Value("BC7_UNORM_SRGB", Format::BC7_UNORM_SRGB)
  347. ->Value("AYUV", Format::AYUV)
  348. ->Value("Y410", Format::Y410)
  349. ->Value("Y416", Format::Y416)
  350. ->Value("NV12", Format::NV12)
  351. ->Value("P010", Format::P010)
  352. ->Value("P016", Format::P016)
  353. ->Value("YUY2", Format::YUY2)
  354. ->Value("Y210", Format::Y210)
  355. ->Value("Y216", Format::Y216)
  356. ->Value("NV11", Format::NV11)
  357. ->Value("AI44", Format::AI44)
  358. ->Value("IA44", Format::IA44)
  359. ->Value("P8", Format::P8)
  360. ->Value("A8P8", Format::A8P8)
  361. ->Value("B4G4R4A4_UNORM", Format::B4G4R4A4_UNORM)
  362. ->Value("R10G10B10_7E3_A2_FLOAT", Format::R10G10B10_7E3_A2_FLOAT)
  363. ->Value("R10G10B10_6E4_A2_FLOAT", Format::R10G10B10_6E4_A2_FLOAT)
  364. ->Value("D16_UNORM_S8_UINT", Format::D16_UNORM_S8_UINT)
  365. ->Value("X16_TYPELESS_G8_UINT", Format::X16_TYPELESS_G8_UINT)
  366. ->Value("P208", Format::P208)
  367. ->Value("V208", Format::V208)
  368. ->Value("V408", Format::V408)
  369. ->Value("EAC_R11_UNORM", Format::EAC_R11_UNORM)
  370. ->Value("EAC_R11_SNORM", Format::EAC_R11_SNORM)
  371. ->Value("EAC_RG11_UNORM", Format::EAC_RG11_UNORM)
  372. ->Value("EAC_RG11_SNORM", Format::EAC_RG11_SNORM)
  373. ->Value("ETC2_UNORM", Format::ETC2_UNORM)
  374. ->Value("ETC2_UNORM_SRGB", Format::ETC2_UNORM_SRGB)
  375. ->Value("ETC2A_UNORM", Format::ETC2A_UNORM)
  376. ->Value("ETC2A_UNORM_SRGB", Format::ETC2A_UNORM_SRGB)
  377. ->Value("ETC2A1_UNORM", Format::ETC2A1_UNORM)
  378. ->Value("ETC2A1_UNORM_SRGB", Format::ETC2A1_UNORM_SRGB)
  379. ->Value("PVRTC2_UNORM", Format::PVRTC2_UNORM)
  380. ->Value("PVRTC2_UNORM_SRGB", Format::PVRTC2_UNORM_SRGB)
  381. ->Value("PVRTC4_UNORM", Format::PVRTC4_UNORM)
  382. ->Value("PVRTC4_UNORM_SRGB", Format::PVRTC4_UNORM_SRGB)
  383. ->Value("ASTC_4x4_UNORM", Format::ASTC_4x4_UNORM)
  384. ->Value("ASTC_4x4_UNORM_SRGB", Format::ASTC_4x4_UNORM_SRGB)
  385. ->Value("ASTC_5x4_UNORM", Format::ASTC_5x4_UNORM)
  386. ->Value("ASTC_5x4_UNORM_SRGB", Format::ASTC_5x4_UNORM_SRGB)
  387. ->Value("ASTC_5x5_UNORM", Format::ASTC_5x5_UNORM)
  388. ->Value("ASTC_5x5_UNORM_SRGB", Format::ASTC_5x5_UNORM_SRGB)
  389. ->Value("ASTC_6x5_UNORM", Format::ASTC_6x5_UNORM)
  390. ->Value("ASTC_6x5_UNORM_SRGB", Format::ASTC_6x5_UNORM_SRGB)
  391. ->Value("ASTC_6x6_UNORM", Format::ASTC_6x6_UNORM)
  392. ->Value("ASTC_6x6_UNORM_SRGB", Format::ASTC_6x6_UNORM_SRGB)
  393. ->Value("ASTC_8x5_UNORM", Format::ASTC_8x5_UNORM)
  394. ->Value("ASTC_8x5_UNORM_SRGB", Format::ASTC_8x5_UNORM_SRGB)
  395. ->Value("ASTC_8x6_UNORM", Format::ASTC_8x6_UNORM)
  396. ->Value("ASTC_8x6_UNORM_SRGB", Format::ASTC_8x6_UNORM_SRGB)
  397. ->Value("ASTC_8x8_UNORM", Format::ASTC_8x8_UNORM)
  398. ->Value("ASTC_8x8_UNORM_SRGB", Format::ASTC_8x8_UNORM_SRGB)
  399. ->Value("ASTC_10x5_UNORM", Format::ASTC_10x5_UNORM)
  400. ->Value("ASTC_10x5_UNORM_SRGB", Format::ASTC_10x5_UNORM_SRGB)
  401. ->Value("ASTC_10x6_UNORM", Format::ASTC_10x6_UNORM)
  402. ->Value("ASTC_10x6_UNORM_SRGB", Format::ASTC_10x6_UNORM_SRGB)
  403. ->Value("ASTC_10x8_UNORM", Format::ASTC_10x8_UNORM)
  404. ->Value("ASTC_10x8_UNORM_SRGB", Format::ASTC_10x8_UNORM_SRGB)
  405. ->Value("ASTC_10x10_UNORM", Format::ASTC_10x10_UNORM)
  406. ->Value("ASTC_10x10_UNORM_SRGB", Format::ASTC_10x10_UNORM_SRGB)
  407. ->Value("ASTC_12x10_UNORM", Format::ASTC_12x10_UNORM)
  408. ->Value("ASTC_12x10_UNORM_SRGB", Format::ASTC_12x10_UNORM_SRGB)
  409. ->Value("ASTC_12x12_UNORM", Format::ASTC_12x12_UNORM)
  410. ->Value("ASTC_12x12_UNORM_SRGB", Format::ASTC_12x12_UNORM_SRGB)
  411. ->Value("A8B8G8R8_UNORM", Format::A8B8G8R8_UNORM)
  412. ->Value("A8B8G8R8_UNORM_SRGB", Format::A8B8G8R8_UNORM_SRGB)
  413. ->Value("A8B8G8R8_SNORM", Format::A8B8G8R8_SNORM)
  414. ->Value("R5G6B5_UNORM", Format::R5G6B5_UNORM)
  415. ->Value("B8G8R8A8_SNORM", Format::B8G8R8A8_SNORM)
  416. ;
  417. }
  418. }