From fda46a7ab84e96196bc2d5c53d74144056e1109b Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Fri, 20 Mar 2020 01:27:40 +0100 Subject: [PATCH] Namespace refactoring to avoid prefixing everything with Vulkan --- CMakeLists.txt | 2 - src/Engine/Graphics/Graphics.cpp | 6 +- src/Engine/Graphics/Graphics.h | 31 +- src/Engine/Graphics/GraphicsEnums.h | 3529 +++++++++-------- src/Engine/Graphics/GraphicsResources.cpp | 10 +- src/Engine/Graphics/GraphicsResources.h | 316 +- src/Engine/Graphics/RenderPath.cpp | 2 +- src/Engine/Graphics/RenderPath.h | 4 +- src/Engine/Graphics/SceneRenderPath.cpp | 2 +- src/Engine/Graphics/SceneRenderPath.h | 2 +- src/Engine/Graphics/SceneView.cpp | 2 +- src/Engine/Graphics/SceneView.h | 2 +- src/Engine/Graphics/View.cpp | 2 +- src/Engine/Graphics/View.h | 5 +- src/Engine/Graphics/Vulkan/CMakeLists.txt | 1 + .../Graphics/Vulkan/VulkanAllocator.cpp | 124 +- src/Engine/Graphics/Vulkan/VulkanAllocator.h | 93 +- src/Engine/Graphics/Vulkan/VulkanBuffer.cpp | 67 + .../Graphics/Vulkan/VulkanCommandBuffer.h | 38 + .../Graphics/Vulkan/VulkanDescriptorSets.cpp | 49 +- src/Engine/Graphics/Vulkan/VulkanGraphics.cpp | 27 +- src/Engine/Graphics/Vulkan/VulkanGraphics.h | 57 +- .../Graphics/Vulkan/VulkanGraphicsEnums.cpp | 11 +- .../Graphics/Vulkan/VulkanGraphicsEnums.h | 11 +- .../Graphics/Vulkan/VulkanGraphicsResources.h | 301 +- .../Graphics/Vulkan/VulkanInitializer.cpp | 132 +- .../Graphics/Vulkan/VulkanInitializer.h | 471 +-- src/Engine/Graphics/Window.cpp | 2 +- src/Engine/Graphics/Window.h | 6 +- src/Engine/Graphics/WindowManager.h | 2 +- src/Engine/Math/MemCRC.h | 384 +- src/Engine/MinimalEngine.h | 2 + 32 files changed, 2995 insertions(+), 2698 deletions(-) create mode 100644 src/Engine/Graphics/Vulkan/VulkanBuffer.cpp create mode 100644 src/Engine/Graphics/Vulkan/VulkanCommandBuffer.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 4166496..923f85f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,8 +64,6 @@ target_link_libraries(SeeleEngine ${Vulkan_LIBRARY}) target_link_libraries(SeeleEngine glfw ${GLFW_LIBRARIES}) target_link_libraries(SeeleEngine ${SLANG_LIBRARY}) -message(Libs: ${GLFW_LIBRARIES}) - add_subdirectory(test/) add_custom_command(TARGET SeeleEngine POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DEPENDENT_BINARIES} $) diff --git a/src/Engine/Graphics/Graphics.cpp b/src/Engine/Graphics/Graphics.cpp index 9afec59..fb285e2 100644 --- a/src/Engine/Graphics/Graphics.cpp +++ b/src/Engine/Graphics/Graphics.cpp @@ -1,11 +1,13 @@ #include "Graphics.h" #include -Seele::Graphics::Graphics() +using namespace Seele::Gfx; + +Graphics::Graphics() { } -Seele::Graphics::~Graphics() +Graphics::~Graphics() { } \ No newline at end of file diff --git a/src/Engine/Graphics/Graphics.h b/src/Engine/Graphics/Graphics.h index fb5c933..c19ab62 100644 --- a/src/Engine/Graphics/Graphics.h +++ b/src/Engine/Graphics/Graphics.h @@ -4,18 +4,21 @@ #include "Containers/Array.h" namespace Seele { - class Window; - class Graphics - { - public: - Graphics(); - ~Graphics(); - virtual void init(GraphicsInitializer initializer) = 0; - virtual void beginFrame(void* windowHandle) = 0; - virtual void endFrame(void* windowHandle) = 0; - virtual void* createWindow(const WindowCreateInfo& createInfo) = 0; - protected: - friend class Window; - }; - DEFINE_REF(Graphics); + namespace Gfx + { + class Window; + class Graphics + { + public: + Graphics(); + ~Graphics(); + virtual void init(GraphicsInitializer initializer) = 0; + virtual void beginFrame(void* windowHandle) = 0; + virtual void endFrame(void* windowHandle) = 0; + virtual void* createWindow(const WindowCreateInfo& createInfo) = 0; + protected: + friend class Window; + }; + DEFINE_REF(Graphics); + } } \ No newline at end of file diff --git a/src/Engine/Graphics/GraphicsEnums.h b/src/Engine/Graphics/GraphicsEnums.h index 18b5ffb..db1cfe2 100644 --- a/src/Engine/Graphics/GraphicsEnums.h +++ b/src/Engine/Graphics/GraphicsEnums.h @@ -2,1767 +2,1770 @@ #include "MinimalEngine.h" namespace Seele { - typedef uint32_t SeFlags; - typedef uint32_t SeBool32; - typedef uint64_t SeDeviceSize; - typedef uint32_t SeSampleMask; - typedef enum SeResult { - SE_SUCCESS = 0, - SE_NOT_READY = 1, - SE_TIMEOUT = 2, - SE_EVENT_SET = 3, - SE_EVENT_RESET = 4, - SE_INCOMPLETE = 5, - SE_ERROR_OUT_OF_HOST_MEMORY = -1, - SE_ERROR_OUT_OF_DEVICE_MEMORY = -2, - SE_ERROR_INITIALIZATION_FAILED = -3, - SE_ERROR_DEVICE_LOST = -4, - SE_ERROR_MEMORY_MAP_FAILED = -5, - SE_ERROR_LAYER_NOT_PRESENT = -6, - SE_ERROR_EXTENSION_NOT_PRESENT = -7, - SE_ERROR_FEATURE_NOT_PRESENT = -8, - SE_ERROR_INCOMPATIBLE_DRIVER = -9, - SE_ERROR_TOO_MANY_OBJECTS = -10, - SE_ERROR_FORMAT_NOT_SUPPORTED = -11, - SE_ERROR_FRAGMENTED_POOL = -12, - SE_ERROR_OUT_OF_POOL_MEMORY = -1000069000, - SE_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, - SE_ERROR_SURFACE_LOST_KHR = -1000000000, - SE_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001, - SE_SUBOPTIMAL_KHR = 1000001003, - SE_ERROR_OUT_OF_DATE_KHR = -1000001004, - SE_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001, - SE_ERROR_VALIDATION_FAILED_EXT = -1000011001, - SE_ERROR_INVALID_SHADER_NV = -1000012000, - SE_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, - SE_ERROR_FRAGMENTATION_EXT = -1000161000, - SE_ERROR_NOT_PERMITTED_EXT = -1000174001, - SE_ERROR_INVALID_DEVICE_ADDRESS_EXT = -1000244000, - SE_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, - SE_ERROR_OUT_OF_POOL_MEMORY_KHR = SE_ERROR_OUT_OF_POOL_MEMORY, - SE_ERROR_INVALID_EXTERNAL_HANDLE_KHR = SE_ERROR_INVALID_EXTERNAL_HANDLE, - SE_RESULT_BEGIN_RANGE = SE_ERROR_FRAGMENTED_POOL, - SE_RESULT_END_RANGE = SE_INCOMPLETE, - SE_RESULT_RANGE_SIZE = (SE_INCOMPLETE - SE_ERROR_FRAGMENTED_POOL + 1), - SE_RESULT_MAX_ENUM = 0x7FFFFFFF - } SeResult; - - typedef enum SeStructureType { - SE_STRUCTURE_TYPE_APPLICATION_INFO = 0, - SE_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, - SE_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, - SE_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, - SE_STRUCTURE_TYPE_SUBMIT_INFO = 4, - SE_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, - SE_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, - SE_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7, - SE_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, - SE_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, - SE_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10, - SE_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, - SE_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, - SE_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13, - SE_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, - SE_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, - SE_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, - SE_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17, - SE_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, - SE_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, - SE_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, - SE_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21, - SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, - SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, - SE_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, - SE_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, - SE_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, - SE_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, - SE_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, - SE_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, - SE_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, - SE_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31, - SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, - SE_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, - SE_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, - SE_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, - SE_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36, - SE_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, - SE_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, - SE_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, - SE_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, - SE_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41, - SE_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, - SE_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, - SE_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44, - SE_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45, - SE_STRUCTURE_TYPE_MEMORY_BARRIER = 46, - SE_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, - SE_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000, - SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000, - SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000, - SE_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, - SE_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, - SE_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, - SE_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003, - SE_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004, - SE_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005, - SE_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006, - SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013, - SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000, - SE_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001, - SE_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000, - SE_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001, - SE_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002, - SE_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003, - SE_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, - SE_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, - SE_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004, - SE_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, - SE_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000, - SE_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001, - SE_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002, - SE_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003, - SE_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000, - SE_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, - SE_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003, - SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000, - SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001, - SE_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002, - SE_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004, - SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005, - SE_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000, - SE_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002, - SE_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004, - SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, - SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, - SE_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000, - SE_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001, - SE_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000, - SE_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000, - SE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, - SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000, - SE_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, - SE_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, - SE_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, - SE_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008, - SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009, - SE_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010, - SE_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011, - SE_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012, - SE_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, - SE_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, - SE_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000, - SE_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, - SE_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, - SE_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, - SE_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, - SE_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, - SE_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, - SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, - SE_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, - SE_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, - SE_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, - SE_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, - SE_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, - SE_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, - SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, - SE_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, - SE_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, - SE_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, - SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, - SE_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, - SE_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, - SE_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001, - SE_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, - SE_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, - SE_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000, - SE_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, - SE_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, - SE_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, - SE_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, - SE_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003, - SE_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, - SE_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, - SE_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002, - SE_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000, - SE_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, - SE_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, - SE_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, - SE_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003, - SE_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, - SE_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, - SE_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, - SE_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = 1000082000, - SE_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, - SE_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, - SE_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, - SE_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002, - SE_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003, - SE_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, - SE_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, - SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, - SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, - SE_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, - SE_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, - SE_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, - SE_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, - SE_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, - SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, - SE_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, - SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000, - SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001, - SE_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = 1000108000, - SE_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = 1000108001, - SE_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = 1000108002, - SE_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = 1000108003, - SE_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000, - SE_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001, - SE_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002, - SE_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003, - SE_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004, - SE_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005, - SE_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006, - SE_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, - SE_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, - SE_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, - SE_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, - SE_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, - SE_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, - SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, - SE_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, - SE_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000, - SE_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001, - SE_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002, - SE_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003, - SE_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004, - SE_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, - SE_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, - SE_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, - SE_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001, - SE_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002, - SE_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003, - SE_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004, - SE_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000, - SE_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001, - SE_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002, - SE_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, - SE_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, - SE_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, - SE_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, - SE_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, - SE_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, - SE_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, - SE_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, - SE_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, - SE_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, - SE_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, - SE_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, - SE_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, - SE_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001, - SE_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, - SE_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, - SE_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, - SE_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, - SE_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, - SE_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, - SE_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, - SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002, - SE_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003, - SE_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004, - SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, - SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, - SE_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000, - SE_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001, - SE_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003, - SE_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004, - SE_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005, - SE_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006, - SE_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007, - SE_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009, - SE_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011, - SE_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, - SE_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, - SE_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, - SE_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, - SE_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, - SE_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, - SE_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000, - SE_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, - SE_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, - SE_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, - SE_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000, - SE_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000, - SE_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000, - SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, - SE_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, - SE_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000, - SE_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000, - SE_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001, - SE_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002, - SE_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003, - SE_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004, - SE_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, - SE_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000, - SE_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001, - SE_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, - SE_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, - SE_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000, - SE_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, - SE_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, - SE_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000, - SE_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = 1000244001, - SE_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, - SE_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000, - SE_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, - SE_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000, - SE_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001, - SE_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = 1000253000, - SE_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000, - SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002, - SE_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001, - SE_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000, - SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = 1000261000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000, - SE_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001, - SE_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002, - SE_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003, - SE_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004, - SE_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, - SE_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = SE_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, - SE_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, - SE_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, - SE_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, - SE_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, - SE_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, - SE_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = SE_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO, - SE_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO, - SE_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, - SE_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO, - SE_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, - SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, - SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, - SE_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, - SE_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = SE_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, - SE_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = SE_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, - SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO, - SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO, - SE_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = SE_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, - SE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = SE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, - SE_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, - SE_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, - SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, - SE_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = SE_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, - SE_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, - SE_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, - SE_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, - SE_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, - SE_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = SE_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, - SE_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = SE_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, - SE_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = SE_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, - SE_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = SE_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, - SE_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = SE_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, - SE_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = SE_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, - SE_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = SE_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, - SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, - SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, - SE_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = SE_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, - SE_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = SE_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, - SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, - SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, - SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, - SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, - SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, - SE_STRUCTURE_TYPE_BEGIN_RANGE = SE_STRUCTURE_TYPE_APPLICATION_INFO, - SE_STRUCTURE_TYPE_END_RANGE = SE_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, - SE_STRUCTURE_TYPE_RANGE_SIZE = (SE_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - SE_STRUCTURE_TYPE_APPLICATION_INFO + 1), - SE_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF - } SeStructureType; - - typedef enum SeSystemAllocationScope { - SE_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, - SE_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, - SE_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, - SE_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, - SE_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, - SE_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = SE_SYSTEM_ALLOCATION_SCOPE_COMMAND, - SE_SYSTEM_ALLOCATION_SCOPE_END_RANGE = SE_SYSTEM_ALLOCATION_SCOPE_INSTANCE, - SE_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (SE_SYSTEM_ALLOCATION_SCOPE_INSTANCE - SE_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1), - SE_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF - } SeSystemAllocationScope; - - typedef enum SeInternalAllocationType { - SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, - SE_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, - SE_INTERNAL_ALLOCATION_TYPE_END_RANGE = SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, - SE_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1), - SE_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF - } SeInternalAllocationType; - - typedef enum SeFormat { - SE_FORMAT_UNDEFINED = 0, - SE_FORMAT_R4G4_UNORM_PACK8 = 1, - SE_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, - SE_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, - SE_FORMAT_R5G6B5_UNORM_PACK16 = 4, - SE_FORMAT_B5G6R5_UNORM_PACK16 = 5, - SE_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, - SE_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, - SE_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, - SE_FORMAT_R8_UNORM = 9, - SE_FORMAT_R8_SNORM = 10, - SE_FORMAT_R8_USCALED = 11, - SE_FORMAT_R8_SSCALED = 12, - SE_FORMAT_R8_UINT = 13, - SE_FORMAT_R8_SINT = 14, - SE_FORMAT_R8_SRGB = 15, - SE_FORMAT_R8G8_UNORM = 16, - SE_FORMAT_R8G8_SNORM = 17, - SE_FORMAT_R8G8_USCALED = 18, - SE_FORMAT_R8G8_SSCALED = 19, - SE_FORMAT_R8G8_UINT = 20, - SE_FORMAT_R8G8_SINT = 21, - SE_FORMAT_R8G8_SRGB = 22, - SE_FORMAT_R8G8B8_UNORM = 23, - SE_FORMAT_R8G8B8_SNORM = 24, - SE_FORMAT_R8G8B8_USCALED = 25, - SE_FORMAT_R8G8B8_SSCALED = 26, - SE_FORMAT_R8G8B8_UINT = 27, - SE_FORMAT_R8G8B8_SINT = 28, - SE_FORMAT_R8G8B8_SRGB = 29, - SE_FORMAT_B8G8R8_UNORM = 30, - SE_FORMAT_B8G8R8_SNORM = 31, - SE_FORMAT_B8G8R8_USCALED = 32, - SE_FORMAT_B8G8R8_SSCALED = 33, - SE_FORMAT_B8G8R8_UINT = 34, - SE_FORMAT_B8G8R8_SINT = 35, - SE_FORMAT_B8G8R8_SRGB = 36, - SE_FORMAT_R8G8B8A8_UNORM = 37, - SE_FORMAT_R8G8B8A8_SNORM = 38, - SE_FORMAT_R8G8B8A8_USCALED = 39, - SE_FORMAT_R8G8B8A8_SSCALED = 40, - SE_FORMAT_R8G8B8A8_UINT = 41, - SE_FORMAT_R8G8B8A8_SINT = 42, - SE_FORMAT_R8G8B8A8_SRGB = 43, - SE_FORMAT_B8G8R8A8_UNORM = 44, - SE_FORMAT_B8G8R8A8_SNORM = 45, - SE_FORMAT_B8G8R8A8_USCALED = 46, - SE_FORMAT_B8G8R8A8_SSCALED = 47, - SE_FORMAT_B8G8R8A8_UINT = 48, - SE_FORMAT_B8G8R8A8_SINT = 49, - SE_FORMAT_B8G8R8A8_SRGB = 50, - SE_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, - SE_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, - SE_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, - SE_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, - SE_FORMAT_A8B8G8R8_UINT_PACK32 = 55, - SE_FORMAT_A8B8G8R8_SINT_PACK32 = 56, - SE_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, - SE_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, - SE_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, - SE_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, - SE_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, - SE_FORMAT_A2R10G10B10_UINT_PACK32 = 62, - SE_FORMAT_A2R10G10B10_SINT_PACK32 = 63, - SE_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, - SE_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, - SE_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, - SE_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, - SE_FORMAT_A2B10G10R10_UINT_PACK32 = 68, - SE_FORMAT_A2B10G10R10_SINT_PACK32 = 69, - SE_FORMAT_R16_UNORM = 70, - SE_FORMAT_R16_SNORM = 71, - SE_FORMAT_R16_USCALED = 72, - SE_FORMAT_R16_SSCALED = 73, - SE_FORMAT_R16_UINT = 74, - SE_FORMAT_R16_SINT = 75, - SE_FORMAT_R16_SFLOAT = 76, - SE_FORMAT_R16G16_UNORM = 77, - SE_FORMAT_R16G16_SNORM = 78, - SE_FORMAT_R16G16_USCALED = 79, - SE_FORMAT_R16G16_SSCALED = 80, - SE_FORMAT_R16G16_UINT = 81, - SE_FORMAT_R16G16_SINT = 82, - SE_FORMAT_R16G16_SFLOAT = 83, - SE_FORMAT_R16G16B16_UNORM = 84, - SE_FORMAT_R16G16B16_SNORM = 85, - SE_FORMAT_R16G16B16_USCALED = 86, - SE_FORMAT_R16G16B16_SSCALED = 87, - SE_FORMAT_R16G16B16_UINT = 88, - SE_FORMAT_R16G16B16_SINT = 89, - SE_FORMAT_R16G16B16_SFLOAT = 90, - SE_FORMAT_R16G16B16A16_UNORM = 91, - SE_FORMAT_R16G16B16A16_SNORM = 92, - SE_FORMAT_R16G16B16A16_USCALED = 93, - SE_FORMAT_R16G16B16A16_SSCALED = 94, - SE_FORMAT_R16G16B16A16_UINT = 95, - SE_FORMAT_R16G16B16A16_SINT = 96, - SE_FORMAT_R16G16B16A16_SFLOAT = 97, - SE_FORMAT_R32_UINT = 98, - SE_FORMAT_R32_SINT = 99, - SE_FORMAT_R32_SFLOAT = 100, - SE_FORMAT_R32G32_UINT = 101, - SE_FORMAT_R32G32_SINT = 102, - SE_FORMAT_R32G32_SFLOAT = 103, - SE_FORMAT_R32G32B32_UINT = 104, - SE_FORMAT_R32G32B32_SINT = 105, - SE_FORMAT_R32G32B32_SFLOAT = 106, - SE_FORMAT_R32G32B32A32_UINT = 107, - SE_FORMAT_R32G32B32A32_SINT = 108, - SE_FORMAT_R32G32B32A32_SFLOAT = 109, - SE_FORMAT_R64_UINT = 110, - SE_FORMAT_R64_SINT = 111, - SE_FORMAT_R64_SFLOAT = 112, - SE_FORMAT_R64G64_UINT = 113, - SE_FORMAT_R64G64_SINT = 114, - SE_FORMAT_R64G64_SFLOAT = 115, - SE_FORMAT_R64G64B64_UINT = 116, - SE_FORMAT_R64G64B64_SINT = 117, - SE_FORMAT_R64G64B64_SFLOAT = 118, - SE_FORMAT_R64G64B64A64_UINT = 119, - SE_FORMAT_R64G64B64A64_SINT = 120, - SE_FORMAT_R64G64B64A64_SFLOAT = 121, - SE_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, - SE_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, - SE_FORMAT_D16_UNORM = 124, - SE_FORMAT_X8_D24_UNORM_PACK32 = 125, - SE_FORMAT_D32_SFLOAT = 126, - SE_FORMAT_S8_UINT = 127, - SE_FORMAT_D16_UNORM_S8_UINT = 128, - SE_FORMAT_D24_UNORM_S8_UINT = 129, - SE_FORMAT_D32_SFLOAT_S8_UINT = 130, - SE_FORMAT_BC1_RGB_UNORM_BLOCK = 131, - SE_FORMAT_BC1_RGB_SRGB_BLOCK = 132, - SE_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, - SE_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, - SE_FORMAT_BC2_UNORM_BLOCK = 135, - SE_FORMAT_BC2_SRGB_BLOCK = 136, - SE_FORMAT_BC3_UNORM_BLOCK = 137, - SE_FORMAT_BC3_SRGB_BLOCK = 138, - SE_FORMAT_BC4_UNORM_BLOCK = 139, - SE_FORMAT_BC4_SNORM_BLOCK = 140, - SE_FORMAT_BC5_UNORM_BLOCK = 141, - SE_FORMAT_BC5_SNORM_BLOCK = 142, - SE_FORMAT_BC6H_UFLOAT_BLOCK = 143, - SE_FORMAT_BC6H_SFLOAT_BLOCK = 144, - SE_FORMAT_BC7_UNORM_BLOCK = 145, - SE_FORMAT_BC7_SRGB_BLOCK = 146, - SE_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, - SE_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, - SE_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, - SE_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, - SE_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, - SE_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, - SE_FORMAT_EAC_R11_UNORM_BLOCK = 153, - SE_FORMAT_EAC_R11_SNORM_BLOCK = 154, - SE_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, - SE_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, - SE_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, - SE_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, - SE_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, - SE_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, - SE_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, - SE_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, - SE_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, - SE_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, - SE_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, - SE_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, - SE_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, - SE_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, - SE_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, - SE_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, - SE_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, - SE_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, - SE_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, - SE_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, - SE_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, - SE_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, - SE_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, - SE_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, - SE_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, - SE_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, - SE_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, - SE_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, - SE_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, - SE_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, - SE_FORMAT_G8B8G8R8_422_UNORM = 1000156000, - SE_FORMAT_B8G8R8G8_422_UNORM = 1000156001, - SE_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, - SE_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, - SE_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, - SE_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, - SE_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, - SE_FORMAT_R10X6_UNORM_PACK16 = 1000156007, - SE_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, - SE_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, - SE_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, - SE_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, - SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, - SE_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, - SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, - SE_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, - SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, - SE_FORMAT_R12X4_UNORM_PACK16 = 1000156017, - SE_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, - SE_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, - SE_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, - SE_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, - SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, - SE_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, - SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, - SE_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, - SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, - SE_FORMAT_G16B16G16R16_422_UNORM = 1000156027, - SE_FORMAT_B16G16R16G16_422_UNORM = 1000156028, - SE_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, - SE_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, - SE_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, - SE_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, - SE_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, - SE_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, - SE_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, - SE_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, - SE_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, - SE_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, - SE_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, - SE_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, - SE_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, - SE_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000, - SE_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001, - SE_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002, - SE_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003, - SE_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004, - SE_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005, - SE_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006, - SE_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007, - SE_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008, - SE_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009, - SE_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010, - SE_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011, - SE_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012, - SE_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013, - SE_FORMAT_G8B8G8R8_422_UNORM_KHR = SE_FORMAT_G8B8G8R8_422_UNORM, - SE_FORMAT_B8G8R8G8_422_UNORM_KHR = SE_FORMAT_B8G8R8G8_422_UNORM, - SE_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = SE_FORMAT_G8_B8_R8_3PLANE_420_UNORM, - SE_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = SE_FORMAT_G8_B8R8_2PLANE_420_UNORM, - SE_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = SE_FORMAT_G8_B8_R8_3PLANE_422_UNORM, - SE_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = SE_FORMAT_G8_B8R8_2PLANE_422_UNORM, - SE_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = SE_FORMAT_G8_B8_R8_3PLANE_444_UNORM, - SE_FORMAT_R10X6_UNORM_PACK16_KHR = SE_FORMAT_R10X6_UNORM_PACK16, - SE_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = SE_FORMAT_R10X6G10X6_UNORM_2PACK16, - SE_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = SE_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, - SE_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = SE_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, - SE_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = SE_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, - SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, - SE_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, - SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, - SE_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, - SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, - SE_FORMAT_R12X4_UNORM_PACK16_KHR = SE_FORMAT_R12X4_UNORM_PACK16, - SE_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = SE_FORMAT_R12X4G12X4_UNORM_2PACK16, - SE_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = SE_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, - SE_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = SE_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, - SE_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = SE_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, - SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, - SE_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, - SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, - SE_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, - SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, - SE_FORMAT_G16B16G16R16_422_UNORM_KHR = SE_FORMAT_G16B16G16R16_422_UNORM, - SE_FORMAT_B16G16R16G16_422_UNORM_KHR = SE_FORMAT_B16G16R16G16_422_UNORM, - SE_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = SE_FORMAT_G16_B16_R16_3PLANE_420_UNORM, - SE_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = SE_FORMAT_G16_B16R16_2PLANE_420_UNORM, - SE_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = SE_FORMAT_G16_B16_R16_3PLANE_422_UNORM, - SE_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = SE_FORMAT_G16_B16R16_2PLANE_422_UNORM, - SE_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = SE_FORMAT_G16_B16_R16_3PLANE_444_UNORM, - SE_FORMAT_BEGIN_RANGE = SE_FORMAT_UNDEFINED, - SE_FORMAT_END_RANGE = SE_FORMAT_ASTC_12x12_SRGB_BLOCK, - SE_FORMAT_RANGE_SIZE = (SE_FORMAT_ASTC_12x12_SRGB_BLOCK - SE_FORMAT_UNDEFINED + 1), - SE_FORMAT_MAX_ENUM = 0x7FFFFFFF - } SeFormat; - - typedef enum SeImageType { - SE_IMAGE_TYPE_1D = 0, - SE_IMAGE_TYPE_2D = 1, - SE_IMAGE_TYPE_3D = 2, - SE_IMAGE_TYPE_BEGIN_RANGE = SE_IMAGE_TYPE_1D, - SE_IMAGE_TYPE_END_RANGE = SE_IMAGE_TYPE_3D, - SE_IMAGE_TYPE_RANGE_SIZE = (SE_IMAGE_TYPE_3D - SE_IMAGE_TYPE_1D + 1), - SE_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF - } SeImageType; - - typedef enum SeImageTiling { - SE_IMAGE_TILING_OPTIMAL = 0, - SE_IMAGE_TILING_LINEAR = 1, - SE_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, - SE_IMAGE_TILING_BEGIN_RANGE = SE_IMAGE_TILING_OPTIMAL, - SE_IMAGE_TILING_END_RANGE = SE_IMAGE_TILING_LINEAR, - SE_IMAGE_TILING_RANGE_SIZE = (SE_IMAGE_TILING_LINEAR - SE_IMAGE_TILING_OPTIMAL + 1), - SE_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF - } SeImageTiling; - - typedef enum SePhysicalDeviceType { - SE_PHYSICAL_DEVICE_TYPE_OTHER = 0, - SE_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, - SE_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, - SE_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, - SE_PHYSICAL_DEVICE_TYPE_CPU = 4, - SE_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = SE_PHYSICAL_DEVICE_TYPE_OTHER, - SE_PHYSICAL_DEVICE_TYPE_END_RANGE = SE_PHYSICAL_DEVICE_TYPE_CPU, - SE_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (SE_PHYSICAL_DEVICE_TYPE_CPU - SE_PHYSICAL_DEVICE_TYPE_OTHER + 1), - SE_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF - } SePhysicalDeviceType; - - typedef enum SeQueryType { - SE_QUERY_TYPE_OCCLUSION = 0, - SE_QUERY_TYPE_PIPELINE_STATISTICS = 1, - SE_QUERY_TYPE_TIMESTAMP = 2, - SE_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, - SE_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, - SE_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, - SE_QUERY_TYPE_BEGIN_RANGE = SE_QUERY_TYPE_OCCLUSION, - SE_QUERY_TYPE_END_RANGE = SE_QUERY_TYPE_TIMESTAMP, - SE_QUERY_TYPE_RANGE_SIZE = (SE_QUERY_TYPE_TIMESTAMP - SE_QUERY_TYPE_OCCLUSION + 1), - SE_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF - } SeQueryType; - - typedef enum SeSharingMode { - SE_SHARING_MODE_EXCLUSIVE = 0, - SE_SHARING_MODE_CONCURRENT = 1, - SE_SHARING_MODE_BEGIN_RANGE = SE_SHARING_MODE_EXCLUSIVE, - SE_SHARING_MODE_END_RANGE = SE_SHARING_MODE_CONCURRENT, - SE_SHARING_MODE_RANGE_SIZE = (SE_SHARING_MODE_CONCURRENT - SE_SHARING_MODE_EXCLUSIVE + 1), - SE_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF - } SeSharingMode; - - typedef enum SeImageLayout { - SE_IMAGE_LAYOUT_UNDEFINED = 0, - SE_IMAGE_LAYOUT_GENERAL = 1, - SE_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, - SE_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, - SE_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, - SE_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, - SE_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, - SE_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, - SE_IMAGE_LAYOUT_PREINITIALIZED = 8, - SE_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, - SE_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, - SE_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, - SE_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, - SE_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, - SE_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, - SE_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = SE_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, - SE_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = SE_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, - SE_IMAGE_LAYOUT_BEGIN_RANGE = SE_IMAGE_LAYOUT_UNDEFINED, - SE_IMAGE_LAYOUT_END_RANGE = SE_IMAGE_LAYOUT_PREINITIALIZED, - SE_IMAGE_LAYOUT_RANGE_SIZE = (SE_IMAGE_LAYOUT_PREINITIALIZED - SE_IMAGE_LAYOUT_UNDEFINED + 1), - SE_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF - } SeImageLayout; - - typedef enum SeImageViewType { - SE_IMAGE_VIEW_TYPE_1D = 0, - SE_IMAGE_VIEW_TYPE_2D = 1, - SE_IMAGE_VIEW_TYPE_3D = 2, - SE_IMAGE_VIEW_TYPE_CUBE = 3, - SE_IMAGE_VIEW_TYPE_1D_ARRAY = 4, - SE_IMAGE_VIEW_TYPE_2D_ARRAY = 5, - SE_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, - SE_IMAGE_VIEW_TYPE_BEGIN_RANGE = SE_IMAGE_VIEW_TYPE_1D, - SE_IMAGE_VIEW_TYPE_END_RANGE = SE_IMAGE_VIEW_TYPE_CUBE_ARRAY, - SE_IMAGE_VIEW_TYPE_RANGE_SIZE = (SE_IMAGE_VIEW_TYPE_CUBE_ARRAY - SE_IMAGE_VIEW_TYPE_1D + 1), - SE_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF - } SeImageViewType; - - typedef enum SeComponentSwizzle { - SE_COMPONENT_SWIZZLE_IDENTITY = 0, - SE_COMPONENT_SWIZZLE_ZERO = 1, - SE_COMPONENT_SWIZZLE_ONE = 2, - SE_COMPONENT_SWIZZLE_R = 3, - SE_COMPONENT_SWIZZLE_G = 4, - SE_COMPONENT_SWIZZLE_B = 5, - SE_COMPONENT_SWIZZLE_A = 6, - SE_COMPONENT_SWIZZLE_BEGIN_RANGE = SE_COMPONENT_SWIZZLE_IDENTITY, - SE_COMPONENT_SWIZZLE_END_RANGE = SE_COMPONENT_SWIZZLE_A, - SE_COMPONENT_SWIZZLE_RANGE_SIZE = (SE_COMPONENT_SWIZZLE_A - SE_COMPONENT_SWIZZLE_IDENTITY + 1), - SE_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF - } SeComponentSwizzle; - - typedef enum SeVertexInputRate { - SE_VERTEX_INPUT_RATE_VERTEX = 0, - SE_VERTEX_INPUT_RATE_INSTANCE = 1, - SE_VERTEX_INPUT_RATE_BEGIN_RANGE = SE_VERTEX_INPUT_RATE_VERTEX, - SE_VERTEX_INPUT_RATE_END_RANGE = SE_VERTEX_INPUT_RATE_INSTANCE, - SE_VERTEX_INPUT_RATE_RANGE_SIZE = (SE_VERTEX_INPUT_RATE_INSTANCE - SE_VERTEX_INPUT_RATE_VERTEX + 1), - SE_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF - } SeVertexInputRate; - - typedef enum SePrimitiveTopology { - SE_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, - SE_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, - SE_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, - SE_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, - SE_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, - SE_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, - SE_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, - SE_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, - SE_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, - SE_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, - SE_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, - SE_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = SE_PRIMITIVE_TOPOLOGY_POINT_LIST, - SE_PRIMITIVE_TOPOLOGY_END_RANGE = SE_PRIMITIVE_TOPOLOGY_PATCH_LIST, - SE_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (SE_PRIMITIVE_TOPOLOGY_PATCH_LIST - SE_PRIMITIVE_TOPOLOGY_POINT_LIST + 1), - SE_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF - } SePrimitiveTopology; - - typedef enum SePolygonMode { - SE_POLYGON_MODE_FILL = 0, - SE_POLYGON_MODE_LINE = 1, - SE_POLYGON_MODE_POINT = 2, - SE_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, - SE_POLYGON_MODE_BEGIN_RANGE = SE_POLYGON_MODE_FILL, - SE_POLYGON_MODE_END_RANGE = SE_POLYGON_MODE_POINT, - SE_POLYGON_MODE_RANGE_SIZE = (SE_POLYGON_MODE_POINT - SE_POLYGON_MODE_FILL + 1), - SE_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF - } SePolygonMode; - - typedef enum SeFrontFace { - SE_FRONT_FACE_COUNTER_CLOCKWISE = 0, - SE_FRONT_FACE_CLOCKWISE = 1, - SE_FRONT_FACE_BEGIN_RANGE = SE_FRONT_FACE_COUNTER_CLOCKWISE, - SE_FRONT_FACE_END_RANGE = SE_FRONT_FACE_CLOCKWISE, - SE_FRONT_FACE_RANGE_SIZE = (SE_FRONT_FACE_CLOCKWISE - SE_FRONT_FACE_COUNTER_CLOCKWISE + 1), - SE_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF - } SeFrontFace; - - typedef enum SeCompareOp { - SE_COMPARE_OP_NEVER = 0, - SE_COMPARE_OP_LESS = 1, - SE_COMPARE_OP_EQUAL = 2, - SE_COMPARE_OP_LESS_OR_EQUAL = 3, - SE_COMPARE_OP_GREATER = 4, - SE_COMPARE_OP_NOT_EQUAL = 5, - SE_COMPARE_OP_GREATER_OR_EQUAL = 6, - SE_COMPARE_OP_ALWAYS = 7, - SE_COMPARE_OP_BEGIN_RANGE = SE_COMPARE_OP_NEVER, - SE_COMPARE_OP_END_RANGE = SE_COMPARE_OP_ALWAYS, - SE_COMPARE_OP_RANGE_SIZE = (SE_COMPARE_OP_ALWAYS - SE_COMPARE_OP_NEVER + 1), - SE_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF - } SeCompareOp; - - typedef enum SeStencilOp { - SE_STENCIL_OP_KEEP = 0, - SE_STENCIL_OP_ZERO = 1, - SE_STENCIL_OP_REPLACE = 2, - SE_STENCIL_OP_INCREMENT_AND_CLAMP = 3, - SE_STENCIL_OP_DECREMENT_AND_CLAMP = 4, - SE_STENCIL_OP_INVERT = 5, - SE_STENCIL_OP_INCREMENT_AND_WRAP = 6, - SE_STENCIL_OP_DECREMENT_AND_WRAP = 7, - SE_STENCIL_OP_BEGIN_RANGE = SE_STENCIL_OP_KEEP, - SE_STENCIL_OP_END_RANGE = SE_STENCIL_OP_DECREMENT_AND_WRAP, - SE_STENCIL_OP_RANGE_SIZE = (SE_STENCIL_OP_DECREMENT_AND_WRAP - SE_STENCIL_OP_KEEP + 1), - SE_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF - } SeStencilOp; - - typedef enum SeLogicOp { - SE_LOGIC_OP_CLEAR = 0, - SE_LOGIC_OP_AND = 1, - SE_LOGIC_OP_AND_REVERSE = 2, - SE_LOGIC_OP_COPY = 3, - SE_LOGIC_OP_AND_INVERTED = 4, - SE_LOGIC_OP_NO_OP = 5, - SE_LOGIC_OP_XOR = 6, - SE_LOGIC_OP_OR = 7, - SE_LOGIC_OP_NOR = 8, - SE_LOGIC_OP_EQUIVALENT = 9, - SE_LOGIC_OP_INVERT = 10, - SE_LOGIC_OP_OR_REVERSE = 11, - SE_LOGIC_OP_COPY_INVERTED = 12, - SE_LOGIC_OP_OR_INVERTED = 13, - SE_LOGIC_OP_NAND = 14, - SE_LOGIC_OP_SET = 15, - SE_LOGIC_OP_BEGIN_RANGE = SE_LOGIC_OP_CLEAR, - SE_LOGIC_OP_END_RANGE = SE_LOGIC_OP_SET, - SE_LOGIC_OP_RANGE_SIZE = (SE_LOGIC_OP_SET - SE_LOGIC_OP_CLEAR + 1), - SE_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF - } SeLogicOp; - - typedef enum SeBlendFactor { - SE_BLEND_FACTOR_ZERO = 0, - SE_BLEND_FACTOR_ONE = 1, - SE_BLEND_FACTOR_SRC_COLOR = 2, - SE_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, - SE_BLEND_FACTOR_DST_COLOR = 4, - SE_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, - SE_BLEND_FACTOR_SRC_ALPHA = 6, - SE_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, - SE_BLEND_FACTOR_DST_ALPHA = 8, - SE_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, - SE_BLEND_FACTOR_CONSTANT_COLOR = 10, - SE_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, - SE_BLEND_FACTOR_CONSTANT_ALPHA = 12, - SE_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, - SE_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, - SE_BLEND_FACTOR_SRC1_COLOR = 15, - SE_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, - SE_BLEND_FACTOR_SRC1_ALPHA = 17, - SE_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, - SE_BLEND_FACTOR_BEGIN_RANGE = SE_BLEND_FACTOR_ZERO, - SE_BLEND_FACTOR_END_RANGE = SE_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, - SE_BLEND_FACTOR_RANGE_SIZE = (SE_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - SE_BLEND_FACTOR_ZERO + 1), - SE_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF - } SeBlendFactor; - - typedef enum SeBlendOp { - SE_BLEND_OP_ADD = 0, - SE_BLEND_OP_SUBTRACT = 1, - SE_BLEND_OP_REVERSE_SUBTRACT = 2, - SE_BLEND_OP_MIN = 3, - SE_BLEND_OP_MAX = 4, - SE_BLEND_OP_ZERO_EXT = 1000148000, - SE_BLEND_OP_SRC_EXT = 1000148001, - SE_BLEND_OP_DST_EXT = 1000148002, - SE_BLEND_OP_SRC_OVER_EXT = 1000148003, - SE_BLEND_OP_DST_OVER_EXT = 1000148004, - SE_BLEND_OP_SRC_IN_EXT = 1000148005, - SE_BLEND_OP_DST_IN_EXT = 1000148006, - SE_BLEND_OP_SRC_OUT_EXT = 1000148007, - SE_BLEND_OP_DST_OUT_EXT = 1000148008, - SE_BLEND_OP_SRC_ATOP_EXT = 1000148009, - SE_BLEND_OP_DST_ATOP_EXT = 1000148010, - SE_BLEND_OP_XOR_EXT = 1000148011, - SE_BLEND_OP_MULTIPLY_EXT = 1000148012, - SE_BLEND_OP_SCREEN_EXT = 1000148013, - SE_BLEND_OP_OVERLAY_EXT = 1000148014, - SE_BLEND_OP_DARKEN_EXT = 1000148015, - SE_BLEND_OP_LIGHTEN_EXT = 1000148016, - SE_BLEND_OP_COLORDODGE_EXT = 1000148017, - SE_BLEND_OP_COLORBURN_EXT = 1000148018, - SE_BLEND_OP_HARDLIGHT_EXT = 1000148019, - SE_BLEND_OP_SOFTLIGHT_EXT = 1000148020, - SE_BLEND_OP_DIFFERENCE_EXT = 1000148021, - SE_BLEND_OP_EXCLUSION_EXT = 1000148022, - SE_BLEND_OP_INVERT_EXT = 1000148023, - SE_BLEND_OP_INVERT_RGB_EXT = 1000148024, - SE_BLEND_OP_LINEARDODGE_EXT = 1000148025, - SE_BLEND_OP_LINEARBURN_EXT = 1000148026, - SE_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, - SE_BLEND_OP_LINEARLIGHT_EXT = 1000148028, - SE_BLEND_OP_PINLIGHT_EXT = 1000148029, - SE_BLEND_OP_HARDMIX_EXT = 1000148030, - SE_BLEND_OP_HSL_HUE_EXT = 1000148031, - SE_BLEND_OP_HSL_SATURATION_EXT = 1000148032, - SE_BLEND_OP_HSL_COLOR_EXT = 1000148033, - SE_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, - SE_BLEND_OP_PLUS_EXT = 1000148035, - SE_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, - SE_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, - SE_BLEND_OP_PLUS_DARKER_EXT = 1000148038, - SE_BLEND_OP_MINUS_EXT = 1000148039, - SE_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, - SE_BLEND_OP_CONTRAST_EXT = 1000148041, - SE_BLEND_OP_INVERT_OVG_EXT = 1000148042, - SE_BLEND_OP_RED_EXT = 1000148043, - SE_BLEND_OP_GREEN_EXT = 1000148044, - SE_BLEND_OP_BLUE_EXT = 1000148045, - SE_BLEND_OP_BEGIN_RANGE = SE_BLEND_OP_ADD, - SE_BLEND_OP_END_RANGE = SE_BLEND_OP_MAX, - SE_BLEND_OP_RANGE_SIZE = (SE_BLEND_OP_MAX - SE_BLEND_OP_ADD + 1), - SE_BLEND_OP_MAX_ENUM = 0x7FFFFFFF - } SeBlendOp; - - typedef enum SeDynamicState { - SE_DYNAMIC_STATE_VIEWPORT = 0, - SE_DYNAMIC_STATE_SCISSOR = 1, - SE_DYNAMIC_STATE_LINE_WIDTH = 2, - SE_DYNAMIC_STATE_DEPTH_BIAS = 3, - SE_DYNAMIC_STATE_BLEND_CONSTANTS = 4, - SE_DYNAMIC_STATE_DEPTH_BOUNDS = 5, - SE_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, - SE_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, - SE_DYNAMIC_STATE_STENCIL_REFERENCE = 8, - SE_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, - SE_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, - SE_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, - SE_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, - SE_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, - SE_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, - SE_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000, - SE_DYNAMIC_STATE_BEGIN_RANGE = SE_DYNAMIC_STATE_VIEWPORT, - SE_DYNAMIC_STATE_END_RANGE = SE_DYNAMIC_STATE_STENCIL_REFERENCE, - SE_DYNAMIC_STATE_RANGE_SIZE = (SE_DYNAMIC_STATE_STENCIL_REFERENCE - SE_DYNAMIC_STATE_VIEWPORT + 1), - SE_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF - } SeDynamicState; - - typedef enum SeFilter { - SE_FILTER_NEAREST = 0, - SE_FILTER_LINEAR = 1, - SE_FILTER_CUBIC_IMG = 1000015000, - SE_FILTER_CUBIC_EXT = SE_FILTER_CUBIC_IMG, - SE_FILTER_BEGIN_RANGE = SE_FILTER_NEAREST, - SE_FILTER_END_RANGE = SE_FILTER_LINEAR, - SE_FILTER_RANGE_SIZE = (SE_FILTER_LINEAR - SE_FILTER_NEAREST + 1), - SE_FILTER_MAX_ENUM = 0x7FFFFFFF - } SeFilter; - - typedef enum SeSamplerMipmapMode { - SE_SAMPLER_MIPMAP_MODE_NEAREST = 0, - SE_SAMPLER_MIPMAP_MODE_LINEAR = 1, - SE_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = SE_SAMPLER_MIPMAP_MODE_NEAREST, - SE_SAMPLER_MIPMAP_MODE_END_RANGE = SE_SAMPLER_MIPMAP_MODE_LINEAR, - SE_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (SE_SAMPLER_MIPMAP_MODE_LINEAR - SE_SAMPLER_MIPMAP_MODE_NEAREST + 1), - SE_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF - } SeSamplerMipmapMode; - - typedef enum SeSamplerAddressMode { - SE_SAMPLER_ADDRESS_MODE_REPEAT = 0, - SE_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, - SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, - SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, - SE_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, - SE_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = SE_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, - SE_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = SE_SAMPLER_ADDRESS_MODE_REPEAT, - SE_SAMPLER_ADDRESS_MODE_END_RANGE = SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, - SE_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - SE_SAMPLER_ADDRESS_MODE_REPEAT + 1), - SE_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF - } SeSamplerAddressMode; - - typedef enum SeBorderColor { - SE_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, - SE_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, - SE_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, - SE_BORDER_COLOR_INT_OPAQUE_BLACK = 3, - SE_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, - SE_BORDER_COLOR_INT_OPAQUE_WHITE = 5, - SE_BORDER_COLOR_BEGIN_RANGE = SE_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, - SE_BORDER_COLOR_END_RANGE = SE_BORDER_COLOR_INT_OPAQUE_WHITE, - SE_BORDER_COLOR_RANGE_SIZE = (SE_BORDER_COLOR_INT_OPAQUE_WHITE - SE_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1), - SE_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF - } SeBorderColor; - - typedef enum SeDescriptorType { - SE_DESCRIPTOR_TYPE_SAMPLER = 0, - SE_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1, - SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2, - SE_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3, - SE_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4, - SE_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5, - SE_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6, - SE_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7, - SE_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, - SE_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, - SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, - SE_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, - SE_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, - SE_DESCRIPTOR_TYPE_BEGIN_RANGE = SE_DESCRIPTOR_TYPE_SAMPLER, - SE_DESCRIPTOR_TYPE_END_RANGE = SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, - SE_DESCRIPTOR_TYPE_RANGE_SIZE = (SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - SE_DESCRIPTOR_TYPE_SAMPLER + 1), - SE_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF - } SeDescriptorType; - - typedef enum SeAttachmentLoadOp { - SE_ATTACHMENT_LOAD_OP_LOAD = 0, - SE_ATTACHMENT_LOAD_OP_CLEAR = 1, - SE_ATTACHMENT_LOAD_OP_DONT_CARE = 2, - SE_ATTACHMENT_LOAD_OP_BEGIN_RANGE = SE_ATTACHMENT_LOAD_OP_LOAD, - SE_ATTACHMENT_LOAD_OP_END_RANGE = SE_ATTACHMENT_LOAD_OP_DONT_CARE, - SE_ATTACHMENT_LOAD_OP_RANGE_SIZE = (SE_ATTACHMENT_LOAD_OP_DONT_CARE - SE_ATTACHMENT_LOAD_OP_LOAD + 1), - SE_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF - } SeAttachmentLoadOp; - - typedef enum SeAttachmentStoreOp { - SE_ATTACHMENT_STORE_OP_STORE = 0, - SE_ATTACHMENT_STORE_OP_DONT_CARE = 1, - SE_ATTACHMENT_STORE_OP_BEGIN_RANGE = SE_ATTACHMENT_STORE_OP_STORE, - SE_ATTACHMENT_STORE_OP_END_RANGE = SE_ATTACHMENT_STORE_OP_DONT_CARE, - SE_ATTACHMENT_STORE_OP_RANGE_SIZE = (SE_ATTACHMENT_STORE_OP_DONT_CARE - SE_ATTACHMENT_STORE_OP_STORE + 1), - SE_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF - } SeAttachmentStoreOp; - - typedef enum SePipelineBindPoint { - SE_PIPELINE_BIND_POINT_GRAPHICS = 0, - SE_PIPELINE_BIND_POINT_COMPUTE = 1, - SE_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000, - SE_PIPELINE_BIND_POINT_BEGIN_RANGE = SE_PIPELINE_BIND_POINT_GRAPHICS, - SE_PIPELINE_BIND_POINT_END_RANGE = SE_PIPELINE_BIND_POINT_COMPUTE, - SE_PIPELINE_BIND_POINT_RANGE_SIZE = (SE_PIPELINE_BIND_POINT_COMPUTE - SE_PIPELINE_BIND_POINT_GRAPHICS + 1), - SE_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF - } SePipelineBindPoint; - - typedef enum SeCommandBufferLevel { - SE_COMMAND_BUFFER_LEVEL_PRIMARY = 0, - SE_COMMAND_BUFFER_LEVEL_SECONDARY = 1, - SE_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = SE_COMMAND_BUFFER_LEVEL_PRIMARY, - SE_COMMAND_BUFFER_LEVEL_END_RANGE = SE_COMMAND_BUFFER_LEVEL_SECONDARY, - SE_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (SE_COMMAND_BUFFER_LEVEL_SECONDARY - SE_COMMAND_BUFFER_LEVEL_PRIMARY + 1), - SE_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF - } SeCommandBufferLevel; - - typedef enum SeIndexType { - SE_INDEX_TYPE_UINT16 = 0, - SE_INDEX_TYPE_UINT32 = 1, - SE_INDEX_TYPE_NONE_NV = 1000165000, - SE_INDEX_TYPE_UINT8_EXT = 1000265000, - SE_INDEX_TYPE_BEGIN_RANGE = SE_INDEX_TYPE_UINT16, - SE_INDEX_TYPE_END_RANGE = SE_INDEX_TYPE_UINT32, - SE_INDEX_TYPE_RANGE_SIZE = (SE_INDEX_TYPE_UINT32 - SE_INDEX_TYPE_UINT16 + 1), - SE_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF - } SeIndexType; - - typedef enum SeSubpassContents { - SE_SUBPASS_CONTENTS_INLINE = 0, - SE_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, - SE_SUBPASS_CONTENTS_BEGIN_RANGE = SE_SUBPASS_CONTENTS_INLINE, - SE_SUBPASS_CONTENTS_END_RANGE = SE_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, - SE_SUBPASS_CONTENTS_RANGE_SIZE = (SE_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - SE_SUBPASS_CONTENTS_INLINE + 1), - SE_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF - } SeSubpassContents; - - typedef enum SeObjectType { - SE_OBJECT_TYPE_UNKNOWN = 0, - SE_OBJECT_TYPE_INSTANCE = 1, - SE_OBJECT_TYPE_PHYSICAL_DEVICE = 2, - SE_OBJECT_TYPE_DEVICE = 3, - SE_OBJECT_TYPE_QUEUE = 4, - SE_OBJECT_TYPE_SEMAPHORE = 5, - SE_OBJECT_TYPE_COMMAND_BUFFER = 6, - SE_OBJECT_TYPE_FENCE = 7, - SE_OBJECT_TYPE_DEVICE_MEMORY = 8, - SE_OBJECT_TYPE_BUFFER = 9, - SE_OBJECT_TYPE_IMAGE = 10, - SE_OBJECT_TYPE_EVENT = 11, - SE_OBJECT_TYPE_QUERY_POOL = 12, - SE_OBJECT_TYPE_BUFFER_VIEW = 13, - SE_OBJECT_TYPE_IMAGE_VIEW = 14, - SE_OBJECT_TYPE_SHADER_MODULE = 15, - SE_OBJECT_TYPE_PIPELINE_CACHE = 16, - SE_OBJECT_TYPE_PIPELINE_LAYOUT = 17, - SE_OBJECT_TYPE_RENDER_PASS = 18, - SE_OBJECT_TYPE_PIPELINE = 19, - SE_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, - SE_OBJECT_TYPE_SAMPLER = 21, - SE_OBJECT_TYPE_DESCRIPTOR_POOL = 22, - SE_OBJECT_TYPE_DESCRIPTOR_SET = 23, - SE_OBJECT_TYPE_FRAMEBUFFER = 24, - SE_OBJECT_TYPE_COMMAND_POOL = 25, - SE_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, - SE_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, - SE_OBJECT_TYPE_SURFACE_KHR = 1000000000, - SE_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, - SE_OBJECT_TYPE_DISPLAY_KHR = 1000002000, - SE_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, - SE_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, - SE_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, - SE_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, - SE_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, - SE_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, - SE_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, - SE_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, - SE_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = SE_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, - SE_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = SE_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, - SE_OBJECT_TYPE_BEGIN_RANGE = SE_OBJECT_TYPE_UNKNOWN, - SE_OBJECT_TYPE_END_RANGE = SE_OBJECT_TYPE_COMMAND_POOL, - SE_OBJECT_TYPE_RANGE_SIZE = (SE_OBJECT_TYPE_COMMAND_POOL - SE_OBJECT_TYPE_UNKNOWN + 1), - SE_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF - } SeObjectType; - - typedef enum SeVendorId { - SE_VENDOR_ID_VIV = 0x10001, - SE_VENDOR_ID_VSI = 0x10002, - SE_VENDOR_ID_KAZAN = 0x10003, - SE_VENDOR_ID_BEGIN_RANGE = SE_VENDOR_ID_VIV, - SE_VENDOR_ID_END_RANGE = SE_VENDOR_ID_KAZAN, - SE_VENDOR_ID_RANGE_SIZE = (SE_VENDOR_ID_KAZAN - SE_VENDOR_ID_VIV + 1), - SE_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF - } SeVendorId; - typedef SeFlags SeInstanceCreateFlags; - - typedef enum SeFormatFeatureFlagBits { - SE_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, - SE_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, - SE_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, - SE_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, - SE_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, - SE_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, - SE_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, - SE_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, - SE_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, - SE_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, - SE_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, - SE_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, - SE_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000, - SE_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, - SE_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, - SE_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, - SE_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, - SE_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, - SE_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = SE_FORMAT_FEATURE_TRANSFER_SRC_BIT, - SE_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = SE_FORMAT_FEATURE_TRANSFER_DST_BIT, - SE_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = SE_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, - SE_FORMAT_FEATURE_DISJOINT_BIT_KHR = SE_FORMAT_FEATURE_DISJOINT_BIT, - SE_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = SE_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, - SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, - SE_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeFormatFeatureFlagBits; - typedef SeFlags SeFormatFeatureFlags; - - typedef enum SeImageUsageFlagBits { - SE_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, - SE_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, - SE_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, - SE_IMAGE_USAGE_STORAGE_BIT = 0x00000008, - SE_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, - SE_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, - SE_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, - SE_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, - SE_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, - SE_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, - SE_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeImageUsageFlagBits; - typedef SeFlags SeImageUsageFlags; - - typedef enum SeImageCreateFlagBits { - SE_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, - SE_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, - SE_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, - SE_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, - SE_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, - SE_IMAGE_CREATE_ALIAS_BIT = 0x00000400, - SE_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, - SE_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, - SE_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, - SE_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, - SE_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, - SE_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, - SE_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, - SE_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, - SE_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, - SE_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = SE_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, - SE_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = SE_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, - SE_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = SE_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, - SE_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = SE_IMAGE_CREATE_EXTENDED_USAGE_BIT, - SE_IMAGE_CREATE_DISJOINT_BIT_KHR = SE_IMAGE_CREATE_DISJOINT_BIT, - SE_IMAGE_CREATE_ALIAS_BIT_KHR = SE_IMAGE_CREATE_ALIAS_BIT, - SE_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeImageCreateFlagBits; - typedef SeFlags SeImageCreateFlags; - - typedef enum SeSampleCountFlagBits { - SE_SAMPLE_COUNT_1_BIT = 0x00000001, - SE_SAMPLE_COUNT_2_BIT = 0x00000002, - SE_SAMPLE_COUNT_4_BIT = 0x00000004, - SE_SAMPLE_COUNT_8_BIT = 0x00000008, - SE_SAMPLE_COUNT_16_BIT = 0x00000010, - SE_SAMPLE_COUNT_32_BIT = 0x00000020, - SE_SAMPLE_COUNT_64_BIT = 0x00000040, - SE_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeSampleCountFlagBits; - typedef SeFlags SeSampleCountFlags; - - typedef enum SeQueueFlagBits { - SE_QUEUE_GRAPHICS_BIT = 0x00000001, - SE_QUEUE_COMPUTE_BIT = 0x00000002, - SE_QUEUE_TRANSFER_BIT = 0x00000004, - SE_QUEUE_SPARSE_BINDING_BIT = 0x00000008, - SE_QUEUE_PROTECTED_BIT = 0x00000010, - SE_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeQueueFlagBits; - typedef SeFlags SeQueueFlags; - - typedef enum SeMemoryPropertyFlagBits { - SE_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, - SE_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, - SE_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, - SE_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, - SE_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, - SE_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, - SE_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, - SE_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, - SE_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeMemoryPropertyFlagBits; - typedef SeFlags SeMemoryPropertyFlags; - - typedef enum SeMemoryHeapFlagBits { - SE_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, - SE_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, - SE_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = SE_MEMORY_HEAP_MULTI_INSTANCE_BIT, - SE_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeMemoryHeapFlagBits; - typedef SeFlags SeMemoryHeapFlags; - typedef SeFlags SeDeviceCreateFlags; - - typedef enum SeDeviceQueueCreateFlagBits { - SE_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, - SE_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeDeviceQueueCreateFlagBits; - typedef SeFlags SeDeviceQueueCreateFlags; - - typedef enum SePipelineStageFlagBits { - SE_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, - SE_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, - SE_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, - SE_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, - SE_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, - SE_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, - SE_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, - SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, - SE_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, - SE_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, - SE_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, - SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, - SE_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, - SE_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, - SE_PIPELINE_STAGE_HOST_BIT = 0x00004000, - SE_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, - SE_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, - SE_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, - SE_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, - SE_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, - SE_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, - SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000, - SE_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000, - SE_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, - SE_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, - SE_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, - SE_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SePipelineStageFlagBits; - typedef SeFlags SePipelineStageFlags; - typedef SeFlags SeMemoryMapFlags; - - typedef enum SeImageAspectFlagBits { - SE_IMAGE_ASPECT_COLOR_BIT = 0x00000001, - SE_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, - SE_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, - SE_IMAGE_ASPECT_METADATA_BIT = 0x00000008, - SE_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, - SE_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, - SE_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, - SE_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, - SE_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, - SE_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, - SE_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, - SE_IMAGE_ASPECT_PLANE_0_BIT_KHR = SE_IMAGE_ASPECT_PLANE_0_BIT, - SE_IMAGE_ASPECT_PLANE_1_BIT_KHR = SE_IMAGE_ASPECT_PLANE_1_BIT, - SE_IMAGE_ASPECT_PLANE_2_BIT_KHR = SE_IMAGE_ASPECT_PLANE_2_BIT, - SE_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeImageAspectFlagBits; - typedef SeFlags SeImageAspectFlags; - - typedef enum SeSparseImageFormatFlagBits { - SE_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, - SE_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002, - SE_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, - SE_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeSparseImageFormatFlagBits; - typedef SeFlags SeSparseImageFormatFlags; - - typedef enum SeSparseMemoryBindFlagBits { - SE_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, - SE_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeSparseMemoryBindFlagBits; - typedef SeFlags SeSparseMemoryBindFlags; - - typedef enum SeFenceCreateFlagBits { - SE_FENCE_CREATE_SIGNALED_BIT = 0x00000001, - SE_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeFenceCreateFlagBits; - typedef SeFlags SeFenceCreateFlags; - typedef SeFlags SeSemaphoreCreateFlags; - typedef SeFlags SeEventCreateFlags; - typedef SeFlags SeQueryPoolCreateFlags; - - typedef enum SeQueryPipelineStatisticFlagBits { - SE_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, - SE_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, - SE_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, - SE_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, - SE_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, - SE_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, - SE_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, - SE_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, - SE_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, - SE_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, - SE_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, - SE_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeQueryPipelineStatisticFlagBits; - typedef SeFlags SeQueryPipelineStatisticFlags; - - typedef enum SeQueryResultFlagBits { - SE_QUERY_RESULT_64_BIT = 0x00000001, - SE_QUERY_RESULT_WAIT_BIT = 0x00000002, - SE_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, - SE_QUERY_RESULT_PARTIAL_BIT = 0x00000008, - SE_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeQueryResultFlagBits; - typedef SeFlags SeQueryResultFlags; - - typedef enum SeBufferCreateFlagBits { - SE_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, - SE_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, - SE_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, - SE_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, - SE_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000010, - SE_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeBufferCreateFlagBits; - typedef SeFlags SeBufferCreateFlags; - - typedef enum SeBufferUsageFlagBits { - SE_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, - SE_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, - SE_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, - SE_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, - SE_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, - SE_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, - SE_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, - SE_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, - SE_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, - SE_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, - SE_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, - SE_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, - SE_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400, - SE_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 0x00020000, - SE_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeBufferUsageFlagBits; - typedef SeFlags SeBufferUsageFlags; - typedef SeFlags SeBufferViewCreateFlags; - - typedef enum SeImageViewCreateFlagBits { - SE_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, - SE_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeImageViewCreateFlagBits; - typedef SeFlags SeImageViewCreateFlags; - - typedef enum SeShaderModuleCreateFlagBits { - SE_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeShaderModuleCreateFlagBits; - typedef SeFlags SeShaderModuleCreateFlags; - typedef SeFlags SePipelineCacheCreateFlags; - - typedef enum SePipelineCreateFlagBits { - SE_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, - SE_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, - SE_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, - SE_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, - SE_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, - SE_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, - SE_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, - SE_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, - SE_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = SE_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, - SE_PIPELINE_CREATE_DISPATCH_BASE_KHR = SE_PIPELINE_CREATE_DISPATCH_BASE, - SE_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SePipelineCreateFlagBits; - typedef SeFlags SePipelineCreateFlags; - - typedef enum SePipelineShaderStageCreateFlagBits { - SE_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001, - SE_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002, - SE_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SePipelineShaderStageCreateFlagBits; - typedef SeFlags SePipelineShaderStageCreateFlags; - - typedef enum SeShaderStageFlagBits { - SE_SHADER_STAGE_VERTEX_BIT = 0x00000001, - SE_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, - SE_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, - SE_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, - SE_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, - SE_SHADER_STAGE_COMPUTE_BIT = 0x00000020, - SE_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, - SE_SHADER_STAGE_ALL = 0x7FFFFFFF, - SE_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100, - SE_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200, - SE_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400, - SE_SHADER_STAGE_MISS_BIT_NV = 0x00000800, - SE_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000, - SE_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000, - SE_SHADER_STAGE_TASK_BIT_NV = 0x00000040, - SE_SHADER_STAGE_MESH_BIT_NV = 0x00000080, - SE_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeShaderStageFlagBits; - typedef SeFlags SePipelineVertexInputStateCreateFlags; - typedef SeFlags SePipelineInputAssemblyStateCreateFlags; - typedef SeFlags SePipelineTessellationStateCreateFlags; - typedef SeFlags SePipelineViewportStateCreateFlags; - typedef SeFlags SePipelineRasterizationStateCreateFlags; - - typedef enum SeCullModeFlagBits { - SE_CULL_MODE_NONE = 0, - SE_CULL_MODE_FRONT_BIT = 0x00000001, - SE_CULL_MODE_BACK_BIT = 0x00000002, - SE_CULL_MODE_FRONT_AND_BACK = 0x00000003, - SE_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeCullModeFlagBits; - typedef SeFlags SeCullModeFlags; - typedef SeFlags SePipelineMultisampleStateCreateFlags; - typedef SeFlags SePipelineDepthStencilStateCreateFlags; - typedef SeFlags SePipelineColorBlendStateCreateFlags; - - typedef enum SeColorComponentFlagBits { - SE_COLOR_COMPONENT_R_BIT = 0x00000001, - SE_COLOR_COMPONENT_G_BIT = 0x00000002, - SE_COLOR_COMPONENT_B_BIT = 0x00000004, - SE_COLOR_COMPONENT_A_BIT = 0x00000008, - SE_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeColorComponentFlagBits; - typedef SeFlags SeColorComponentFlags; - typedef SeFlags SePipelineDynamicStateCreateFlags; - typedef SeFlags SePipelineLayoutCreateFlags; - typedef SeFlags SeShaderStageFlags; - - typedef enum SeSamplerCreateFlagBits { - SE_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001, - SE_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002, - SE_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeSamplerCreateFlagBits; - typedef SeFlags SeSamplerCreateFlags; - - typedef enum SeDescriptorSetLayoutCreateFlagBits { - SE_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, - SE_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002, - SE_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeDescriptorSetLayoutCreateFlagBits; - typedef SeFlags SeDescriptorSetLayoutCreateFlags; - - typedef enum SeDescriptorPoolCreateFlagBits { - SE_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, - SE_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002, - SE_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeDescriptorPoolCreateFlagBits; - typedef SeFlags SeDescriptorPoolCreateFlags; - typedef SeFlags SeDescriptorPoolResetFlags; - - typedef enum SeFramebufferCreateFlagBits { - SE_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = 0x00000001, - SE_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeFramebufferCreateFlagBits; - typedef SeFlags SeFramebufferCreateFlags; - - typedef enum SeRenderPassCreateFlagBits { - SE_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeRenderPassCreateFlagBits; - typedef SeFlags SeRenderPassCreateFlags; - - typedef enum SeAttachmentDescriptionFlagBits { - SE_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, - SE_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeAttachmentDescriptionFlagBits; - typedef SeFlags SeAttachmentDescriptionFlags; - - typedef enum SeSubpassDescriptionFlagBits { - SE_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, - SE_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, - SE_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeSubpassDescriptionFlagBits; - typedef SeFlags SeSubpassDescriptionFlags; - - typedef enum SeAccessFlagBits { - SE_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, - SE_ACCESS_INDEX_READ_BIT = 0x00000002, - SE_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, - SE_ACCESS_UNIFORM_READ_BIT = 0x00000008, - SE_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, - SE_ACCESS_SHADER_READ_BIT = 0x00000020, - SE_ACCESS_SHADER_WRITE_BIT = 0x00000040, - SE_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, - SE_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, - SE_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, - SE_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, - SE_ACCESS_TRANSFER_READ_BIT = 0x00000800, - SE_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, - SE_ACCESS_HOST_READ_BIT = 0x00002000, - SE_ACCESS_HOST_WRITE_BIT = 0x00004000, - SE_ACCESS_MEMORY_READ_BIT = 0x00008000, - SE_ACCESS_MEMORY_WRITE_BIT = 0x00010000, - SE_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, - SE_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, - SE_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, - SE_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, - SE_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, - SE_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, - SE_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, - SE_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, - SE_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000, - SE_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000, - SE_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, - SE_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeAccessFlagBits; - typedef SeFlags SeAccessFlags; - - typedef enum SeDependencyFlagBits { - SE_DEPENDENCY_BY_REGION_BIT = 0x00000001, - SE_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, - SE_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, - SE_DEPENDENCY_VIEW_LOCAL_BIT_KHR = SE_DEPENDENCY_VIEW_LOCAL_BIT, - SE_DEPENDENCY_DEVICE_GROUP_BIT_KHR = SE_DEPENDENCY_DEVICE_GROUP_BIT, - SE_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeDependencyFlagBits; - typedef SeFlags SeDependencyFlags; - - typedef enum SeCommandPoolCreateFlagBits { - SE_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, - SE_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, - SE_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, - SE_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeCommandPoolCreateFlagBits; - typedef SeFlags SeCommandPoolCreateFlags; - - typedef enum SeCommandPoolResetFlagBits { - SE_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, - SE_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeCommandPoolResetFlagBits; - typedef SeFlags SeCommandPoolResetFlags; - - typedef enum SeCommandBufferUsageFlagBits { - SE_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, - SE_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, - SE_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, - SE_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeCommandBufferUsageFlagBits; - typedef SeFlags SeCommandBufferUsageFlags; - - typedef enum SeQueryControlFlagBits { - SE_QUERY_CONTROL_PRECISE_BIT = 0x00000001, - SE_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeQueryControlFlagBits; - typedef SeFlags SeQueryControlFlags; - - typedef enum SeCommandBufferResetFlagBits { - SE_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, - SE_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeCommandBufferResetFlagBits; - typedef SeFlags SeCommandBufferResetFlags; - - typedef enum SeStencilFaceFlagBits { - SE_STENCIL_FACE_FRONT_BIT = 0x00000001, - SE_STENCIL_FACE_BACK_BIT = 0x00000002, - SE_STENCIL_FACE_FRONT_AND_BACK = 0x00000003, - SE_STENCIL_FRONT_AND_BACK = SE_STENCIL_FACE_FRONT_AND_BACK, - SE_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF - } SeStencilFaceFlagBits; - typedef SeFlags SeStencilFaceFlags; + namespace Gfx + { + typedef uint32_t SeFlags; + typedef uint32_t SeBool32; + typedef uint64_t SeDeviceSize; + typedef uint32_t SeSampleMask; + typedef enum SeResult { + SE_SUCCESS = 0, + SE_NOT_READY = 1, + SE_TIMEOUT = 2, + SE_EVENT_SET = 3, + SE_EVENT_RESET = 4, + SE_INCOMPLETE = 5, + SE_ERROR_OUT_OF_HOST_MEMORY = -1, + SE_ERROR_OUT_OF_DEVICE_MEMORY = -2, + SE_ERROR_INITIALIZATION_FAILED = -3, + SE_ERROR_DEVICE_LOST = -4, + SE_ERROR_MEMORY_MAP_FAILED = -5, + SE_ERROR_LAYER_NOT_PRESENT = -6, + SE_ERROR_EXTENSION_NOT_PRESENT = -7, + SE_ERROR_FEATURE_NOT_PRESENT = -8, + SE_ERROR_INCOMPATIBLE_DRIVER = -9, + SE_ERROR_TOO_MANY_OBJECTS = -10, + SE_ERROR_FORMAT_NOT_SUPPORTED = -11, + SE_ERROR_FRAGMENTED_POOL = -12, + SE_ERROR_OUT_OF_POOL_MEMORY = -1000069000, + SE_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, + SE_ERROR_SURFACE_LOST_KHR = -1000000000, + SE_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001, + SE_SUBOPTIMAL_KHR = 1000001003, + SE_ERROR_OUT_OF_DATE_KHR = -1000001004, + SE_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001, + SE_ERROR_VALIDATION_FAILED_EXT = -1000011001, + SE_ERROR_INVALID_SHADER_NV = -1000012000, + SE_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, + SE_ERROR_FRAGMENTATION_EXT = -1000161000, + SE_ERROR_NOT_PERMITTED_EXT = -1000174001, + SE_ERROR_INVALID_DEVICE_ADDRESS_EXT = -1000244000, + SE_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, + SE_ERROR_OUT_OF_POOL_MEMORY_KHR = SE_ERROR_OUT_OF_POOL_MEMORY, + SE_ERROR_INVALID_EXTERNAL_HANDLE_KHR = SE_ERROR_INVALID_EXTERNAL_HANDLE, + SE_RESULT_BEGIN_RANGE = SE_ERROR_FRAGMENTED_POOL, + SE_RESULT_END_RANGE = SE_INCOMPLETE, + SE_RESULT_RANGE_SIZE = (SE_INCOMPLETE - SE_ERROR_FRAGMENTED_POOL + 1), + SE_RESULT_MAX_ENUM = 0x7FFFFFFF + } SeResult; + + typedef enum SeStructureType { + SE_STRUCTURE_TYPE_APPLICATION_INFO = 0, + SE_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, + SE_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, + SE_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, + SE_STRUCTURE_TYPE_SUBMIT_INFO = 4, + SE_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, + SE_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, + SE_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7, + SE_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, + SE_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, + SE_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10, + SE_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, + SE_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, + SE_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13, + SE_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, + SE_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, + SE_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, + SE_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17, + SE_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, + SE_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, + SE_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, + SE_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21, + SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, + SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, + SE_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, + SE_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, + SE_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, + SE_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, + SE_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, + SE_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, + SE_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, + SE_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31, + SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, + SE_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, + SE_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, + SE_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, + SE_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36, + SE_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, + SE_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, + SE_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, + SE_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, + SE_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41, + SE_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, + SE_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, + SE_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44, + SE_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45, + SE_STRUCTURE_TYPE_MEMORY_BARRIER = 46, + SE_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, + SE_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000, + SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000, + SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000, + SE_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, + SE_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, + SE_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, + SE_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003, + SE_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004, + SE_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005, + SE_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006, + SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013, + SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000, + SE_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001, + SE_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000, + SE_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001, + SE_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002, + SE_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003, + SE_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, + SE_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, + SE_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004, + SE_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, + SE_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000, + SE_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001, + SE_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002, + SE_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003, + SE_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000, + SE_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, + SE_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003, + SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000, + SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001, + SE_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002, + SE_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004, + SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005, + SE_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000, + SE_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002, + SE_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004, + SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, + SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, + SE_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000, + SE_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001, + SE_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000, + SE_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000, + SE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, + SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000, + SE_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, + SE_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, + SE_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, + SE_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008, + SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009, + SE_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010, + SE_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011, + SE_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012, + SE_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, + SE_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, + SE_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000, + SE_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, + SE_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, + SE_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, + SE_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, + SE_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, + SE_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, + SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, + SE_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, + SE_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, + SE_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, + SE_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, + SE_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, + SE_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, + SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, + SE_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, + SE_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, + SE_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, + SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, + SE_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, + SE_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, + SE_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001, + SE_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, + SE_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, + SE_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000, + SE_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, + SE_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, + SE_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, + SE_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, + SE_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003, + SE_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, + SE_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, + SE_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002, + SE_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000, + SE_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, + SE_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, + SE_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, + SE_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003, + SE_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, + SE_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, + SE_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, + SE_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = 1000082000, + SE_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, + SE_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, + SE_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, + SE_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002, + SE_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003, + SE_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, + SE_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, + SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, + SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, + SE_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, + SE_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, + SE_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, + SE_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, + SE_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, + SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, + SE_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, + SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000, + SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001, + SE_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = 1000108000, + SE_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = 1000108001, + SE_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = 1000108002, + SE_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = 1000108003, + SE_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000, + SE_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001, + SE_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002, + SE_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003, + SE_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004, + SE_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005, + SE_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006, + SE_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, + SE_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, + SE_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, + SE_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, + SE_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, + SE_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, + SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, + SE_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, + SE_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000, + SE_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001, + SE_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002, + SE_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003, + SE_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004, + SE_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, + SE_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, + SE_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, + SE_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001, + SE_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002, + SE_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003, + SE_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004, + SE_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000, + SE_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001, + SE_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002, + SE_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, + SE_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, + SE_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, + SE_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, + SE_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, + SE_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, + SE_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, + SE_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, + SE_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, + SE_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, + SE_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, + SE_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, + SE_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, + SE_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001, + SE_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, + SE_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, + SE_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, + SE_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, + SE_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, + SE_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, + SE_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, + SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002, + SE_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003, + SE_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004, + SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, + SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, + SE_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000, + SE_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001, + SE_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003, + SE_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004, + SE_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005, + SE_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006, + SE_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007, + SE_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009, + SE_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011, + SE_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, + SE_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, + SE_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, + SE_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, + SE_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, + SE_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, + SE_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000, + SE_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, + SE_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, + SE_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, + SE_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000, + SE_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000, + SE_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000, + SE_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, + SE_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, + SE_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000, + SE_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000, + SE_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001, + SE_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002, + SE_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003, + SE_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004, + SE_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, + SE_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000, + SE_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001, + SE_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, + SE_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, + SE_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000, + SE_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, + SE_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, + SE_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000, + SE_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = 1000244001, + SE_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, + SE_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000, + SE_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, + SE_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000, + SE_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001, + SE_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = 1000253000, + SE_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000, + SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002, + SE_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001, + SE_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000, + SE_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = 1000261000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000, + SE_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001, + SE_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002, + SE_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003, + SE_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004, + SE_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, + SE_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = SE_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, + SE_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, + SE_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, + SE_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, + SE_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, + SE_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = SE_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, + SE_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = SE_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO, + SE_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO, + SE_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, + SE_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO, + SE_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, + SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, + SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, + SE_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, + SE_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = SE_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, + SE_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = SE_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, + SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO, + SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO, + SE_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = SE_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, + SE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = SE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, + SE_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, + SE_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, + SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = SE_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, + SE_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = SE_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, + SE_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, + SE_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, + SE_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, + SE_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, + SE_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = SE_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, + SE_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = SE_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, + SE_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = SE_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, + SE_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = SE_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, + SE_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = SE_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, + SE_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = SE_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, + SE_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = SE_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, + SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, + SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, + SE_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = SE_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, + SE_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = SE_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, + SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = SE_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, + SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = SE_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, + SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = SE_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, + SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = SE_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, + SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = SE_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, + SE_STRUCTURE_TYPE_BEGIN_RANGE = SE_STRUCTURE_TYPE_APPLICATION_INFO, + SE_STRUCTURE_TYPE_END_RANGE = SE_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, + SE_STRUCTURE_TYPE_RANGE_SIZE = (SE_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - SE_STRUCTURE_TYPE_APPLICATION_INFO + 1), + SE_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF + } SeStructureType; + + typedef enum SeSystemAllocationScope { + SE_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, + SE_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, + SE_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, + SE_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, + SE_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, + SE_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = SE_SYSTEM_ALLOCATION_SCOPE_COMMAND, + SE_SYSTEM_ALLOCATION_SCOPE_END_RANGE = SE_SYSTEM_ALLOCATION_SCOPE_INSTANCE, + SE_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (SE_SYSTEM_ALLOCATION_SCOPE_INSTANCE - SE_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1), + SE_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF + } SeSystemAllocationScope; + + typedef enum SeInternalAllocationType { + SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, + SE_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, + SE_INTERNAL_ALLOCATION_TYPE_END_RANGE = SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, + SE_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - SE_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1), + SE_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF + } SeInternalAllocationType; + + typedef enum SeFormat { + SE_FORMAT_UNDEFINED = 0, + SE_FORMAT_R4G4_UNORM_PACK8 = 1, + SE_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, + SE_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, + SE_FORMAT_R5G6B5_UNORM_PACK16 = 4, + SE_FORMAT_B5G6R5_UNORM_PACK16 = 5, + SE_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, + SE_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, + SE_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, + SE_FORMAT_R8_UNORM = 9, + SE_FORMAT_R8_SNORM = 10, + SE_FORMAT_R8_USCALED = 11, + SE_FORMAT_R8_SSCALED = 12, + SE_FORMAT_R8_UINT = 13, + SE_FORMAT_R8_SINT = 14, + SE_FORMAT_R8_SRGB = 15, + SE_FORMAT_R8G8_UNORM = 16, + SE_FORMAT_R8G8_SNORM = 17, + SE_FORMAT_R8G8_USCALED = 18, + SE_FORMAT_R8G8_SSCALED = 19, + SE_FORMAT_R8G8_UINT = 20, + SE_FORMAT_R8G8_SINT = 21, + SE_FORMAT_R8G8_SRGB = 22, + SE_FORMAT_R8G8B8_UNORM = 23, + SE_FORMAT_R8G8B8_SNORM = 24, + SE_FORMAT_R8G8B8_USCALED = 25, + SE_FORMAT_R8G8B8_SSCALED = 26, + SE_FORMAT_R8G8B8_UINT = 27, + SE_FORMAT_R8G8B8_SINT = 28, + SE_FORMAT_R8G8B8_SRGB = 29, + SE_FORMAT_B8G8R8_UNORM = 30, + SE_FORMAT_B8G8R8_SNORM = 31, + SE_FORMAT_B8G8R8_USCALED = 32, + SE_FORMAT_B8G8R8_SSCALED = 33, + SE_FORMAT_B8G8R8_UINT = 34, + SE_FORMAT_B8G8R8_SINT = 35, + SE_FORMAT_B8G8R8_SRGB = 36, + SE_FORMAT_R8G8B8A8_UNORM = 37, + SE_FORMAT_R8G8B8A8_SNORM = 38, + SE_FORMAT_R8G8B8A8_USCALED = 39, + SE_FORMAT_R8G8B8A8_SSCALED = 40, + SE_FORMAT_R8G8B8A8_UINT = 41, + SE_FORMAT_R8G8B8A8_SINT = 42, + SE_FORMAT_R8G8B8A8_SRGB = 43, + SE_FORMAT_B8G8R8A8_UNORM = 44, + SE_FORMAT_B8G8R8A8_SNORM = 45, + SE_FORMAT_B8G8R8A8_USCALED = 46, + SE_FORMAT_B8G8R8A8_SSCALED = 47, + SE_FORMAT_B8G8R8A8_UINT = 48, + SE_FORMAT_B8G8R8A8_SINT = 49, + SE_FORMAT_B8G8R8A8_SRGB = 50, + SE_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, + SE_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, + SE_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, + SE_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, + SE_FORMAT_A8B8G8R8_UINT_PACK32 = 55, + SE_FORMAT_A8B8G8R8_SINT_PACK32 = 56, + SE_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, + SE_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, + SE_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, + SE_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, + SE_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, + SE_FORMAT_A2R10G10B10_UINT_PACK32 = 62, + SE_FORMAT_A2R10G10B10_SINT_PACK32 = 63, + SE_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, + SE_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, + SE_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, + SE_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, + SE_FORMAT_A2B10G10R10_UINT_PACK32 = 68, + SE_FORMAT_A2B10G10R10_SINT_PACK32 = 69, + SE_FORMAT_R16_UNORM = 70, + SE_FORMAT_R16_SNORM = 71, + SE_FORMAT_R16_USCALED = 72, + SE_FORMAT_R16_SSCALED = 73, + SE_FORMAT_R16_UINT = 74, + SE_FORMAT_R16_SINT = 75, + SE_FORMAT_R16_SFLOAT = 76, + SE_FORMAT_R16G16_UNORM = 77, + SE_FORMAT_R16G16_SNORM = 78, + SE_FORMAT_R16G16_USCALED = 79, + SE_FORMAT_R16G16_SSCALED = 80, + SE_FORMAT_R16G16_UINT = 81, + SE_FORMAT_R16G16_SINT = 82, + SE_FORMAT_R16G16_SFLOAT = 83, + SE_FORMAT_R16G16B16_UNORM = 84, + SE_FORMAT_R16G16B16_SNORM = 85, + SE_FORMAT_R16G16B16_USCALED = 86, + SE_FORMAT_R16G16B16_SSCALED = 87, + SE_FORMAT_R16G16B16_UINT = 88, + SE_FORMAT_R16G16B16_SINT = 89, + SE_FORMAT_R16G16B16_SFLOAT = 90, + SE_FORMAT_R16G16B16A16_UNORM = 91, + SE_FORMAT_R16G16B16A16_SNORM = 92, + SE_FORMAT_R16G16B16A16_USCALED = 93, + SE_FORMAT_R16G16B16A16_SSCALED = 94, + SE_FORMAT_R16G16B16A16_UINT = 95, + SE_FORMAT_R16G16B16A16_SINT = 96, + SE_FORMAT_R16G16B16A16_SFLOAT = 97, + SE_FORMAT_R32_UINT = 98, + SE_FORMAT_R32_SINT = 99, + SE_FORMAT_R32_SFLOAT = 100, + SE_FORMAT_R32G32_UINT = 101, + SE_FORMAT_R32G32_SINT = 102, + SE_FORMAT_R32G32_SFLOAT = 103, + SE_FORMAT_R32G32B32_UINT = 104, + SE_FORMAT_R32G32B32_SINT = 105, + SE_FORMAT_R32G32B32_SFLOAT = 106, + SE_FORMAT_R32G32B32A32_UINT = 107, + SE_FORMAT_R32G32B32A32_SINT = 108, + SE_FORMAT_R32G32B32A32_SFLOAT = 109, + SE_FORMAT_R64_UINT = 110, + SE_FORMAT_R64_SINT = 111, + SE_FORMAT_R64_SFLOAT = 112, + SE_FORMAT_R64G64_UINT = 113, + SE_FORMAT_R64G64_SINT = 114, + SE_FORMAT_R64G64_SFLOAT = 115, + SE_FORMAT_R64G64B64_UINT = 116, + SE_FORMAT_R64G64B64_SINT = 117, + SE_FORMAT_R64G64B64_SFLOAT = 118, + SE_FORMAT_R64G64B64A64_UINT = 119, + SE_FORMAT_R64G64B64A64_SINT = 120, + SE_FORMAT_R64G64B64A64_SFLOAT = 121, + SE_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, + SE_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, + SE_FORMAT_D16_UNORM = 124, + SE_FORMAT_X8_D24_UNORM_PACK32 = 125, + SE_FORMAT_D32_SFLOAT = 126, + SE_FORMAT_S8_UINT = 127, + SE_FORMAT_D16_UNORM_S8_UINT = 128, + SE_FORMAT_D24_UNORM_S8_UINT = 129, + SE_FORMAT_D32_SFLOAT_S8_UINT = 130, + SE_FORMAT_BC1_RGB_UNORM_BLOCK = 131, + SE_FORMAT_BC1_RGB_SRGB_BLOCK = 132, + SE_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, + SE_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, + SE_FORMAT_BC2_UNORM_BLOCK = 135, + SE_FORMAT_BC2_SRGB_BLOCK = 136, + SE_FORMAT_BC3_UNORM_BLOCK = 137, + SE_FORMAT_BC3_SRGB_BLOCK = 138, + SE_FORMAT_BC4_UNORM_BLOCK = 139, + SE_FORMAT_BC4_SNORM_BLOCK = 140, + SE_FORMAT_BC5_UNORM_BLOCK = 141, + SE_FORMAT_BC5_SNORM_BLOCK = 142, + SE_FORMAT_BC6H_UFLOAT_BLOCK = 143, + SE_FORMAT_BC6H_SFLOAT_BLOCK = 144, + SE_FORMAT_BC7_UNORM_BLOCK = 145, + SE_FORMAT_BC7_SRGB_BLOCK = 146, + SE_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, + SE_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, + SE_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, + SE_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, + SE_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, + SE_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, + SE_FORMAT_EAC_R11_UNORM_BLOCK = 153, + SE_FORMAT_EAC_R11_SNORM_BLOCK = 154, + SE_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, + SE_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, + SE_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, + SE_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, + SE_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, + SE_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, + SE_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, + SE_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, + SE_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, + SE_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, + SE_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, + SE_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, + SE_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, + SE_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, + SE_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, + SE_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, + SE_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, + SE_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, + SE_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, + SE_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, + SE_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, + SE_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, + SE_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, + SE_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, + SE_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, + SE_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, + SE_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, + SE_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, + SE_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, + SE_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, + SE_FORMAT_G8B8G8R8_422_UNORM = 1000156000, + SE_FORMAT_B8G8R8G8_422_UNORM = 1000156001, + SE_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, + SE_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, + SE_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, + SE_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, + SE_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, + SE_FORMAT_R10X6_UNORM_PACK16 = 1000156007, + SE_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, + SE_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, + SE_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, + SE_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, + SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, + SE_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, + SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, + SE_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, + SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, + SE_FORMAT_R12X4_UNORM_PACK16 = 1000156017, + SE_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, + SE_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, + SE_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, + SE_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, + SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, + SE_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, + SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, + SE_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, + SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, + SE_FORMAT_G16B16G16R16_422_UNORM = 1000156027, + SE_FORMAT_B16G16R16G16_422_UNORM = 1000156028, + SE_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, + SE_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, + SE_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, + SE_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, + SE_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, + SE_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, + SE_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, + SE_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, + SE_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, + SE_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, + SE_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, + SE_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, + SE_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, + SE_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000, + SE_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001, + SE_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002, + SE_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003, + SE_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004, + SE_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005, + SE_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006, + SE_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007, + SE_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008, + SE_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009, + SE_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010, + SE_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011, + SE_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012, + SE_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013, + SE_FORMAT_G8B8G8R8_422_UNORM_KHR = SE_FORMAT_G8B8G8R8_422_UNORM, + SE_FORMAT_B8G8R8G8_422_UNORM_KHR = SE_FORMAT_B8G8R8G8_422_UNORM, + SE_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = SE_FORMAT_G8_B8_R8_3PLANE_420_UNORM, + SE_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = SE_FORMAT_G8_B8R8_2PLANE_420_UNORM, + SE_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = SE_FORMAT_G8_B8_R8_3PLANE_422_UNORM, + SE_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = SE_FORMAT_G8_B8R8_2PLANE_422_UNORM, + SE_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = SE_FORMAT_G8_B8_R8_3PLANE_444_UNORM, + SE_FORMAT_R10X6_UNORM_PACK16_KHR = SE_FORMAT_R10X6_UNORM_PACK16, + SE_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = SE_FORMAT_R10X6G10X6_UNORM_2PACK16, + SE_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = SE_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, + SE_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = SE_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, + SE_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = SE_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, + SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, + SE_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, + SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, + SE_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, + SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = SE_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, + SE_FORMAT_R12X4_UNORM_PACK16_KHR = SE_FORMAT_R12X4_UNORM_PACK16, + SE_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = SE_FORMAT_R12X4G12X4_UNORM_2PACK16, + SE_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = SE_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, + SE_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = SE_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, + SE_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = SE_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, + SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, + SE_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, + SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, + SE_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, + SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = SE_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, + SE_FORMAT_G16B16G16R16_422_UNORM_KHR = SE_FORMAT_G16B16G16R16_422_UNORM, + SE_FORMAT_B16G16R16G16_422_UNORM_KHR = SE_FORMAT_B16G16R16G16_422_UNORM, + SE_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = SE_FORMAT_G16_B16_R16_3PLANE_420_UNORM, + SE_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = SE_FORMAT_G16_B16R16_2PLANE_420_UNORM, + SE_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = SE_FORMAT_G16_B16_R16_3PLANE_422_UNORM, + SE_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = SE_FORMAT_G16_B16R16_2PLANE_422_UNORM, + SE_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = SE_FORMAT_G16_B16_R16_3PLANE_444_UNORM, + SE_FORMAT_BEGIN_RANGE = SE_FORMAT_UNDEFINED, + SE_FORMAT_END_RANGE = SE_FORMAT_ASTC_12x12_SRGB_BLOCK, + SE_FORMAT_RANGE_SIZE = (SE_FORMAT_ASTC_12x12_SRGB_BLOCK - SE_FORMAT_UNDEFINED + 1), + SE_FORMAT_MAX_ENUM = 0x7FFFFFFF + } SeFormat; + + typedef enum SeImageType { + SE_IMAGE_TYPE_1D = 0, + SE_IMAGE_TYPE_2D = 1, + SE_IMAGE_TYPE_3D = 2, + SE_IMAGE_TYPE_BEGIN_RANGE = SE_IMAGE_TYPE_1D, + SE_IMAGE_TYPE_END_RANGE = SE_IMAGE_TYPE_3D, + SE_IMAGE_TYPE_RANGE_SIZE = (SE_IMAGE_TYPE_3D - SE_IMAGE_TYPE_1D + 1), + SE_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF + } SeImageType; + + typedef enum SeImageTiling { + SE_IMAGE_TILING_OPTIMAL = 0, + SE_IMAGE_TILING_LINEAR = 1, + SE_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, + SE_IMAGE_TILING_BEGIN_RANGE = SE_IMAGE_TILING_OPTIMAL, + SE_IMAGE_TILING_END_RANGE = SE_IMAGE_TILING_LINEAR, + SE_IMAGE_TILING_RANGE_SIZE = (SE_IMAGE_TILING_LINEAR - SE_IMAGE_TILING_OPTIMAL + 1), + SE_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF + } SeImageTiling; + + typedef enum SePhysicalDeviceType { + SE_PHYSICAL_DEVICE_TYPE_OTHER = 0, + SE_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, + SE_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, + SE_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, + SE_PHYSICAL_DEVICE_TYPE_CPU = 4, + SE_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = SE_PHYSICAL_DEVICE_TYPE_OTHER, + SE_PHYSICAL_DEVICE_TYPE_END_RANGE = SE_PHYSICAL_DEVICE_TYPE_CPU, + SE_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (SE_PHYSICAL_DEVICE_TYPE_CPU - SE_PHYSICAL_DEVICE_TYPE_OTHER + 1), + SE_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF + } SePhysicalDeviceType; + + typedef enum SeQueryType { + SE_QUERY_TYPE_OCCLUSION = 0, + SE_QUERY_TYPE_PIPELINE_STATISTICS = 1, + SE_QUERY_TYPE_TIMESTAMP = 2, + SE_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, + SE_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, + SE_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, + SE_QUERY_TYPE_BEGIN_RANGE = SE_QUERY_TYPE_OCCLUSION, + SE_QUERY_TYPE_END_RANGE = SE_QUERY_TYPE_TIMESTAMP, + SE_QUERY_TYPE_RANGE_SIZE = (SE_QUERY_TYPE_TIMESTAMP - SE_QUERY_TYPE_OCCLUSION + 1), + SE_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF + } SeQueryType; + + typedef enum SeSharingMode { + SE_SHARING_MODE_EXCLUSIVE = 0, + SE_SHARING_MODE_CONCURRENT = 1, + SE_SHARING_MODE_BEGIN_RANGE = SE_SHARING_MODE_EXCLUSIVE, + SE_SHARING_MODE_END_RANGE = SE_SHARING_MODE_CONCURRENT, + SE_SHARING_MODE_RANGE_SIZE = (SE_SHARING_MODE_CONCURRENT - SE_SHARING_MODE_EXCLUSIVE + 1), + SE_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF + } SeSharingMode; + + typedef enum SeImageLayout { + SE_IMAGE_LAYOUT_UNDEFINED = 0, + SE_IMAGE_LAYOUT_GENERAL = 1, + SE_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, + SE_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, + SE_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, + SE_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, + SE_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, + SE_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, + SE_IMAGE_LAYOUT_PREINITIALIZED = 8, + SE_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, + SE_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, + SE_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, + SE_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, + SE_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, + SE_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, + SE_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = SE_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, + SE_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = SE_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, + SE_IMAGE_LAYOUT_BEGIN_RANGE = SE_IMAGE_LAYOUT_UNDEFINED, + SE_IMAGE_LAYOUT_END_RANGE = SE_IMAGE_LAYOUT_PREINITIALIZED, + SE_IMAGE_LAYOUT_RANGE_SIZE = (SE_IMAGE_LAYOUT_PREINITIALIZED - SE_IMAGE_LAYOUT_UNDEFINED + 1), + SE_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF + } SeImageLayout; + + typedef enum SeImageViewType { + SE_IMAGE_VIEW_TYPE_1D = 0, + SE_IMAGE_VIEW_TYPE_2D = 1, + SE_IMAGE_VIEW_TYPE_3D = 2, + SE_IMAGE_VIEW_TYPE_CUBE = 3, + SE_IMAGE_VIEW_TYPE_1D_ARRAY = 4, + SE_IMAGE_VIEW_TYPE_2D_ARRAY = 5, + SE_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, + SE_IMAGE_VIEW_TYPE_BEGIN_RANGE = SE_IMAGE_VIEW_TYPE_1D, + SE_IMAGE_VIEW_TYPE_END_RANGE = SE_IMAGE_VIEW_TYPE_CUBE_ARRAY, + SE_IMAGE_VIEW_TYPE_RANGE_SIZE = (SE_IMAGE_VIEW_TYPE_CUBE_ARRAY - SE_IMAGE_VIEW_TYPE_1D + 1), + SE_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF + } SeImageViewType; + + typedef enum SeComponentSwizzle { + SE_COMPONENT_SWIZZLE_IDENTITY = 0, + SE_COMPONENT_SWIZZLE_ZERO = 1, + SE_COMPONENT_SWIZZLE_ONE = 2, + SE_COMPONENT_SWIZZLE_R = 3, + SE_COMPONENT_SWIZZLE_G = 4, + SE_COMPONENT_SWIZZLE_B = 5, + SE_COMPONENT_SWIZZLE_A = 6, + SE_COMPONENT_SWIZZLE_BEGIN_RANGE = SE_COMPONENT_SWIZZLE_IDENTITY, + SE_COMPONENT_SWIZZLE_END_RANGE = SE_COMPONENT_SWIZZLE_A, + SE_COMPONENT_SWIZZLE_RANGE_SIZE = (SE_COMPONENT_SWIZZLE_A - SE_COMPONENT_SWIZZLE_IDENTITY + 1), + SE_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF + } SeComponentSwizzle; + + typedef enum SeVertexInputRate { + SE_VERTEX_INPUT_RATE_VERTEX = 0, + SE_VERTEX_INPUT_RATE_INSTANCE = 1, + SE_VERTEX_INPUT_RATE_BEGIN_RANGE = SE_VERTEX_INPUT_RATE_VERTEX, + SE_VERTEX_INPUT_RATE_END_RANGE = SE_VERTEX_INPUT_RATE_INSTANCE, + SE_VERTEX_INPUT_RATE_RANGE_SIZE = (SE_VERTEX_INPUT_RATE_INSTANCE - SE_VERTEX_INPUT_RATE_VERTEX + 1), + SE_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF + } SeVertexInputRate; + + typedef enum SePrimitiveTopology { + SE_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, + SE_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, + SE_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, + SE_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, + SE_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, + SE_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, + SE_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, + SE_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, + SE_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, + SE_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, + SE_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, + SE_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = SE_PRIMITIVE_TOPOLOGY_POINT_LIST, + SE_PRIMITIVE_TOPOLOGY_END_RANGE = SE_PRIMITIVE_TOPOLOGY_PATCH_LIST, + SE_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (SE_PRIMITIVE_TOPOLOGY_PATCH_LIST - SE_PRIMITIVE_TOPOLOGY_POINT_LIST + 1), + SE_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF + } SePrimitiveTopology; + + typedef enum SePolygonMode { + SE_POLYGON_MODE_FILL = 0, + SE_POLYGON_MODE_LINE = 1, + SE_POLYGON_MODE_POINT = 2, + SE_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, + SE_POLYGON_MODE_BEGIN_RANGE = SE_POLYGON_MODE_FILL, + SE_POLYGON_MODE_END_RANGE = SE_POLYGON_MODE_POINT, + SE_POLYGON_MODE_RANGE_SIZE = (SE_POLYGON_MODE_POINT - SE_POLYGON_MODE_FILL + 1), + SE_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF + } SePolygonMode; + + typedef enum SeFrontFace { + SE_FRONT_FACE_COUNTER_CLOCKWISE = 0, + SE_FRONT_FACE_CLOCKWISE = 1, + SE_FRONT_FACE_BEGIN_RANGE = SE_FRONT_FACE_COUNTER_CLOCKWISE, + SE_FRONT_FACE_END_RANGE = SE_FRONT_FACE_CLOCKWISE, + SE_FRONT_FACE_RANGE_SIZE = (SE_FRONT_FACE_CLOCKWISE - SE_FRONT_FACE_COUNTER_CLOCKWISE + 1), + SE_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF + } SeFrontFace; + + typedef enum SeCompareOp { + SE_COMPARE_OP_NEVER = 0, + SE_COMPARE_OP_LESS = 1, + SE_COMPARE_OP_EQUAL = 2, + SE_COMPARE_OP_LESS_OR_EQUAL = 3, + SE_COMPARE_OP_GREATER = 4, + SE_COMPARE_OP_NOT_EQUAL = 5, + SE_COMPARE_OP_GREATER_OR_EQUAL = 6, + SE_COMPARE_OP_ALWAYS = 7, + SE_COMPARE_OP_BEGIN_RANGE = SE_COMPARE_OP_NEVER, + SE_COMPARE_OP_END_RANGE = SE_COMPARE_OP_ALWAYS, + SE_COMPARE_OP_RANGE_SIZE = (SE_COMPARE_OP_ALWAYS - SE_COMPARE_OP_NEVER + 1), + SE_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF + } SeCompareOp; + + typedef enum SeStencilOp { + SE_STENCIL_OP_KEEP = 0, + SE_STENCIL_OP_ZERO = 1, + SE_STENCIL_OP_REPLACE = 2, + SE_STENCIL_OP_INCREMENT_AND_CLAMP = 3, + SE_STENCIL_OP_DECREMENT_AND_CLAMP = 4, + SE_STENCIL_OP_INVERT = 5, + SE_STENCIL_OP_INCREMENT_AND_WRAP = 6, + SE_STENCIL_OP_DECREMENT_AND_WRAP = 7, + SE_STENCIL_OP_BEGIN_RANGE = SE_STENCIL_OP_KEEP, + SE_STENCIL_OP_END_RANGE = SE_STENCIL_OP_DECREMENT_AND_WRAP, + SE_STENCIL_OP_RANGE_SIZE = (SE_STENCIL_OP_DECREMENT_AND_WRAP - SE_STENCIL_OP_KEEP + 1), + SE_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF + } SeStencilOp; + + typedef enum SeLogicOp { + SE_LOGIC_OP_CLEAR = 0, + SE_LOGIC_OP_AND = 1, + SE_LOGIC_OP_AND_REVERSE = 2, + SE_LOGIC_OP_COPY = 3, + SE_LOGIC_OP_AND_INVERTED = 4, + SE_LOGIC_OP_NO_OP = 5, + SE_LOGIC_OP_XOR = 6, + SE_LOGIC_OP_OR = 7, + SE_LOGIC_OP_NOR = 8, + SE_LOGIC_OP_EQUIVALENT = 9, + SE_LOGIC_OP_INVERT = 10, + SE_LOGIC_OP_OR_REVERSE = 11, + SE_LOGIC_OP_COPY_INVERTED = 12, + SE_LOGIC_OP_OR_INVERTED = 13, + SE_LOGIC_OP_NAND = 14, + SE_LOGIC_OP_SET = 15, + SE_LOGIC_OP_BEGIN_RANGE = SE_LOGIC_OP_CLEAR, + SE_LOGIC_OP_END_RANGE = SE_LOGIC_OP_SET, + SE_LOGIC_OP_RANGE_SIZE = (SE_LOGIC_OP_SET - SE_LOGIC_OP_CLEAR + 1), + SE_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF + } SeLogicOp; + + typedef enum SeBlendFactor { + SE_BLEND_FACTOR_ZERO = 0, + SE_BLEND_FACTOR_ONE = 1, + SE_BLEND_FACTOR_SRC_COLOR = 2, + SE_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, + SE_BLEND_FACTOR_DST_COLOR = 4, + SE_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, + SE_BLEND_FACTOR_SRC_ALPHA = 6, + SE_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, + SE_BLEND_FACTOR_DST_ALPHA = 8, + SE_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, + SE_BLEND_FACTOR_CONSTANT_COLOR = 10, + SE_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, + SE_BLEND_FACTOR_CONSTANT_ALPHA = 12, + SE_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, + SE_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, + SE_BLEND_FACTOR_SRC1_COLOR = 15, + SE_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, + SE_BLEND_FACTOR_SRC1_ALPHA = 17, + SE_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, + SE_BLEND_FACTOR_BEGIN_RANGE = SE_BLEND_FACTOR_ZERO, + SE_BLEND_FACTOR_END_RANGE = SE_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, + SE_BLEND_FACTOR_RANGE_SIZE = (SE_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - SE_BLEND_FACTOR_ZERO + 1), + SE_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF + } SeBlendFactor; + + typedef enum SeBlendOp { + SE_BLEND_OP_ADD = 0, + SE_BLEND_OP_SUBTRACT = 1, + SE_BLEND_OP_REVERSE_SUBTRACT = 2, + SE_BLEND_OP_MIN = 3, + SE_BLEND_OP_MAX = 4, + SE_BLEND_OP_ZERO_EXT = 1000148000, + SE_BLEND_OP_SRC_EXT = 1000148001, + SE_BLEND_OP_DST_EXT = 1000148002, + SE_BLEND_OP_SRC_OVER_EXT = 1000148003, + SE_BLEND_OP_DST_OVER_EXT = 1000148004, + SE_BLEND_OP_SRC_IN_EXT = 1000148005, + SE_BLEND_OP_DST_IN_EXT = 1000148006, + SE_BLEND_OP_SRC_OUT_EXT = 1000148007, + SE_BLEND_OP_DST_OUT_EXT = 1000148008, + SE_BLEND_OP_SRC_ATOP_EXT = 1000148009, + SE_BLEND_OP_DST_ATOP_EXT = 1000148010, + SE_BLEND_OP_XOR_EXT = 1000148011, + SE_BLEND_OP_MULTIPLY_EXT = 1000148012, + SE_BLEND_OP_SCREEN_EXT = 1000148013, + SE_BLEND_OP_OVERLAY_EXT = 1000148014, + SE_BLEND_OP_DARKEN_EXT = 1000148015, + SE_BLEND_OP_LIGHTEN_EXT = 1000148016, + SE_BLEND_OP_COLORDODGE_EXT = 1000148017, + SE_BLEND_OP_COLORBURN_EXT = 1000148018, + SE_BLEND_OP_HARDLIGHT_EXT = 1000148019, + SE_BLEND_OP_SOFTLIGHT_EXT = 1000148020, + SE_BLEND_OP_DIFFERENCE_EXT = 1000148021, + SE_BLEND_OP_EXCLUSION_EXT = 1000148022, + SE_BLEND_OP_INVERT_EXT = 1000148023, + SE_BLEND_OP_INVERT_RGB_EXT = 1000148024, + SE_BLEND_OP_LINEARDODGE_EXT = 1000148025, + SE_BLEND_OP_LINEARBURN_EXT = 1000148026, + SE_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, + SE_BLEND_OP_LINEARLIGHT_EXT = 1000148028, + SE_BLEND_OP_PINLIGHT_EXT = 1000148029, + SE_BLEND_OP_HARDMIX_EXT = 1000148030, + SE_BLEND_OP_HSL_HUE_EXT = 1000148031, + SE_BLEND_OP_HSL_SATURATION_EXT = 1000148032, + SE_BLEND_OP_HSL_COLOR_EXT = 1000148033, + SE_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, + SE_BLEND_OP_PLUS_EXT = 1000148035, + SE_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, + SE_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, + SE_BLEND_OP_PLUS_DARKER_EXT = 1000148038, + SE_BLEND_OP_MINUS_EXT = 1000148039, + SE_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, + SE_BLEND_OP_CONTRAST_EXT = 1000148041, + SE_BLEND_OP_INVERT_OVG_EXT = 1000148042, + SE_BLEND_OP_RED_EXT = 1000148043, + SE_BLEND_OP_GREEN_EXT = 1000148044, + SE_BLEND_OP_BLUE_EXT = 1000148045, + SE_BLEND_OP_BEGIN_RANGE = SE_BLEND_OP_ADD, + SE_BLEND_OP_END_RANGE = SE_BLEND_OP_MAX, + SE_BLEND_OP_RANGE_SIZE = (SE_BLEND_OP_MAX - SE_BLEND_OP_ADD + 1), + SE_BLEND_OP_MAX_ENUM = 0x7FFFFFFF + } SeBlendOp; + + typedef enum SeDynamicState { + SE_DYNAMIC_STATE_VIEWPORT = 0, + SE_DYNAMIC_STATE_SCISSOR = 1, + SE_DYNAMIC_STATE_LINE_WIDTH = 2, + SE_DYNAMIC_STATE_DEPTH_BIAS = 3, + SE_DYNAMIC_STATE_BLEND_CONSTANTS = 4, + SE_DYNAMIC_STATE_DEPTH_BOUNDS = 5, + SE_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, + SE_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, + SE_DYNAMIC_STATE_STENCIL_REFERENCE = 8, + SE_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, + SE_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, + SE_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, + SE_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, + SE_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, + SE_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, + SE_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000, + SE_DYNAMIC_STATE_BEGIN_RANGE = SE_DYNAMIC_STATE_VIEWPORT, + SE_DYNAMIC_STATE_END_RANGE = SE_DYNAMIC_STATE_STENCIL_REFERENCE, + SE_DYNAMIC_STATE_RANGE_SIZE = (SE_DYNAMIC_STATE_STENCIL_REFERENCE - SE_DYNAMIC_STATE_VIEWPORT + 1), + SE_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF + } SeDynamicState; + + typedef enum SeFilter { + SE_FILTER_NEAREST = 0, + SE_FILTER_LINEAR = 1, + SE_FILTER_CUBIC_IMG = 1000015000, + SE_FILTER_CUBIC_EXT = SE_FILTER_CUBIC_IMG, + SE_FILTER_BEGIN_RANGE = SE_FILTER_NEAREST, + SE_FILTER_END_RANGE = SE_FILTER_LINEAR, + SE_FILTER_RANGE_SIZE = (SE_FILTER_LINEAR - SE_FILTER_NEAREST + 1), + SE_FILTER_MAX_ENUM = 0x7FFFFFFF + } SeFilter; + + typedef enum SeSamplerMipmapMode { + SE_SAMPLER_MIPMAP_MODE_NEAREST = 0, + SE_SAMPLER_MIPMAP_MODE_LINEAR = 1, + SE_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = SE_SAMPLER_MIPMAP_MODE_NEAREST, + SE_SAMPLER_MIPMAP_MODE_END_RANGE = SE_SAMPLER_MIPMAP_MODE_LINEAR, + SE_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (SE_SAMPLER_MIPMAP_MODE_LINEAR - SE_SAMPLER_MIPMAP_MODE_NEAREST + 1), + SE_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF + } SeSamplerMipmapMode; + + typedef enum SeSamplerAddressMode { + SE_SAMPLER_ADDRESS_MODE_REPEAT = 0, + SE_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, + SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, + SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, + SE_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, + SE_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = SE_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, + SE_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = SE_SAMPLER_ADDRESS_MODE_REPEAT, + SE_SAMPLER_ADDRESS_MODE_END_RANGE = SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, + SE_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (SE_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - SE_SAMPLER_ADDRESS_MODE_REPEAT + 1), + SE_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF + } SeSamplerAddressMode; + + typedef enum SeBorderColor { + SE_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, + SE_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, + SE_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, + SE_BORDER_COLOR_INT_OPAQUE_BLACK = 3, + SE_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, + SE_BORDER_COLOR_INT_OPAQUE_WHITE = 5, + SE_BORDER_COLOR_BEGIN_RANGE = SE_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, + SE_BORDER_COLOR_END_RANGE = SE_BORDER_COLOR_INT_OPAQUE_WHITE, + SE_BORDER_COLOR_RANGE_SIZE = (SE_BORDER_COLOR_INT_OPAQUE_WHITE - SE_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1), + SE_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF + } SeBorderColor; + + typedef enum SeDescriptorType { + SE_DESCRIPTOR_TYPE_SAMPLER = 0, + SE_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1, + SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2, + SE_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3, + SE_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4, + SE_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5, + SE_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6, + SE_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7, + SE_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, + SE_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, + SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, + SE_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, + SE_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, + SE_DESCRIPTOR_TYPE_BEGIN_RANGE = SE_DESCRIPTOR_TYPE_SAMPLER, + SE_DESCRIPTOR_TYPE_END_RANGE = SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, + SE_DESCRIPTOR_TYPE_RANGE_SIZE = (SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - SE_DESCRIPTOR_TYPE_SAMPLER + 1), + SE_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF + } SeDescriptorType; + + typedef enum SeAttachmentLoadOp { + SE_ATTACHMENT_LOAD_OP_LOAD = 0, + SE_ATTACHMENT_LOAD_OP_CLEAR = 1, + SE_ATTACHMENT_LOAD_OP_DONT_CARE = 2, + SE_ATTACHMENT_LOAD_OP_BEGIN_RANGE = SE_ATTACHMENT_LOAD_OP_LOAD, + SE_ATTACHMENT_LOAD_OP_END_RANGE = SE_ATTACHMENT_LOAD_OP_DONT_CARE, + SE_ATTACHMENT_LOAD_OP_RANGE_SIZE = (SE_ATTACHMENT_LOAD_OP_DONT_CARE - SE_ATTACHMENT_LOAD_OP_LOAD + 1), + SE_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF + } SeAttachmentLoadOp; + + typedef enum SeAttachmentStoreOp { + SE_ATTACHMENT_STORE_OP_STORE = 0, + SE_ATTACHMENT_STORE_OP_DONT_CARE = 1, + SE_ATTACHMENT_STORE_OP_BEGIN_RANGE = SE_ATTACHMENT_STORE_OP_STORE, + SE_ATTACHMENT_STORE_OP_END_RANGE = SE_ATTACHMENT_STORE_OP_DONT_CARE, + SE_ATTACHMENT_STORE_OP_RANGE_SIZE = (SE_ATTACHMENT_STORE_OP_DONT_CARE - SE_ATTACHMENT_STORE_OP_STORE + 1), + SE_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF + } SeAttachmentStoreOp; + + typedef enum SePipelineBindPoint { + SE_PIPELINE_BIND_POINT_GRAPHICS = 0, + SE_PIPELINE_BIND_POINT_COMPUTE = 1, + SE_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000, + SE_PIPELINE_BIND_POINT_BEGIN_RANGE = SE_PIPELINE_BIND_POINT_GRAPHICS, + SE_PIPELINE_BIND_POINT_END_RANGE = SE_PIPELINE_BIND_POINT_COMPUTE, + SE_PIPELINE_BIND_POINT_RANGE_SIZE = (SE_PIPELINE_BIND_POINT_COMPUTE - SE_PIPELINE_BIND_POINT_GRAPHICS + 1), + SE_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF + } SePipelineBindPoint; + + typedef enum SeCommandBufferLevel { + SE_COMMAND_BUFFER_LEVEL_PRIMARY = 0, + SE_COMMAND_BUFFER_LEVEL_SECONDARY = 1, + SE_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = SE_COMMAND_BUFFER_LEVEL_PRIMARY, + SE_COMMAND_BUFFER_LEVEL_END_RANGE = SE_COMMAND_BUFFER_LEVEL_SECONDARY, + SE_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (SE_COMMAND_BUFFER_LEVEL_SECONDARY - SE_COMMAND_BUFFER_LEVEL_PRIMARY + 1), + SE_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF + } SeCommandBufferLevel; + + typedef enum SeIndexType { + SE_INDEX_TYPE_UINT16 = 0, + SE_INDEX_TYPE_UINT32 = 1, + SE_INDEX_TYPE_NONE_NV = 1000165000, + SE_INDEX_TYPE_UINT8_EXT = 1000265000, + SE_INDEX_TYPE_BEGIN_RANGE = SE_INDEX_TYPE_UINT16, + SE_INDEX_TYPE_END_RANGE = SE_INDEX_TYPE_UINT32, + SE_INDEX_TYPE_RANGE_SIZE = (SE_INDEX_TYPE_UINT32 - SE_INDEX_TYPE_UINT16 + 1), + SE_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF + } SeIndexType; + + typedef enum SeSubpassContents { + SE_SUBPASS_CONTENTS_INLINE = 0, + SE_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, + SE_SUBPASS_CONTENTS_BEGIN_RANGE = SE_SUBPASS_CONTENTS_INLINE, + SE_SUBPASS_CONTENTS_END_RANGE = SE_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, + SE_SUBPASS_CONTENTS_RANGE_SIZE = (SE_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - SE_SUBPASS_CONTENTS_INLINE + 1), + SE_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF + } SeSubpassContents; + + typedef enum SeObjectType { + SE_OBJECT_TYPE_UNKNOWN = 0, + SE_OBJECT_TYPE_INSTANCE = 1, + SE_OBJECT_TYPE_PHYSICAL_DEVICE = 2, + SE_OBJECT_TYPE_DEVICE = 3, + SE_OBJECT_TYPE_QUEUE = 4, + SE_OBJECT_TYPE_SEMAPHORE = 5, + SE_OBJECT_TYPE_COMMAND_BUFFER = 6, + SE_OBJECT_TYPE_FENCE = 7, + SE_OBJECT_TYPE_DEVICE_MEMORY = 8, + SE_OBJECT_TYPE_BUFFER = 9, + SE_OBJECT_TYPE_IMAGE = 10, + SE_OBJECT_TYPE_EVENT = 11, + SE_OBJECT_TYPE_QUERY_POOL = 12, + SE_OBJECT_TYPE_BUFFER_VIEW = 13, + SE_OBJECT_TYPE_IMAGE_VIEW = 14, + SE_OBJECT_TYPE_SHADER_MODULE = 15, + SE_OBJECT_TYPE_PIPELINE_CACHE = 16, + SE_OBJECT_TYPE_PIPELINE_LAYOUT = 17, + SE_OBJECT_TYPE_RENDER_PASS = 18, + SE_OBJECT_TYPE_PIPELINE = 19, + SE_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, + SE_OBJECT_TYPE_SAMPLER = 21, + SE_OBJECT_TYPE_DESCRIPTOR_POOL = 22, + SE_OBJECT_TYPE_DESCRIPTOR_SET = 23, + SE_OBJECT_TYPE_FRAMEBUFFER = 24, + SE_OBJECT_TYPE_COMMAND_POOL = 25, + SE_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, + SE_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, + SE_OBJECT_TYPE_SURFACE_KHR = 1000000000, + SE_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, + SE_OBJECT_TYPE_DISPLAY_KHR = 1000002000, + SE_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, + SE_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, + SE_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, + SE_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, + SE_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, + SE_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, + SE_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, + SE_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, + SE_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = SE_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, + SE_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = SE_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, + SE_OBJECT_TYPE_BEGIN_RANGE = SE_OBJECT_TYPE_UNKNOWN, + SE_OBJECT_TYPE_END_RANGE = SE_OBJECT_TYPE_COMMAND_POOL, + SE_OBJECT_TYPE_RANGE_SIZE = (SE_OBJECT_TYPE_COMMAND_POOL - SE_OBJECT_TYPE_UNKNOWN + 1), + SE_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF + } SeObjectType; + + typedef enum SeVendorId { + SE_VENDOR_ID_VIV = 0x10001, + SE_VENDOR_ID_VSI = 0x10002, + SE_VENDOR_ID_KAZAN = 0x10003, + SE_VENDOR_ID_BEGIN_RANGE = SE_VENDOR_ID_VIV, + SE_VENDOR_ID_END_RANGE = SE_VENDOR_ID_KAZAN, + SE_VENDOR_ID_RANGE_SIZE = (SE_VENDOR_ID_KAZAN - SE_VENDOR_ID_VIV + 1), + SE_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF + } SeVendorId; + typedef SeFlags SeInstanceCreateFlags; + + typedef enum SeFormatFeatureFlagBits { + SE_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, + SE_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, + SE_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, + SE_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, + SE_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, + SE_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, + SE_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, + SE_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, + SE_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, + SE_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, + SE_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, + SE_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, + SE_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000, + SE_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, + SE_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, + SE_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, + SE_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, + SE_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, + SE_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = SE_FORMAT_FEATURE_TRANSFER_SRC_BIT, + SE_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = SE_FORMAT_FEATURE_TRANSFER_DST_BIT, + SE_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = SE_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = SE_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, + SE_FORMAT_FEATURE_DISJOINT_BIT_KHR = SE_FORMAT_FEATURE_DISJOINT_BIT, + SE_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = SE_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, + SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = SE_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, + SE_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeFormatFeatureFlagBits; + typedef SeFlags SeFormatFeatureFlags; + + typedef enum SeImageUsageFlagBits { + SE_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, + SE_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, + SE_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, + SE_IMAGE_USAGE_STORAGE_BIT = 0x00000008, + SE_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, + SE_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, + SE_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, + SE_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, + SE_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, + SE_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, + SE_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeImageUsageFlagBits; + typedef SeFlags SeImageUsageFlags; + + typedef enum SeImageCreateFlagBits { + SE_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, + SE_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, + SE_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, + SE_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, + SE_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, + SE_IMAGE_CREATE_ALIAS_BIT = 0x00000400, + SE_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, + SE_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, + SE_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, + SE_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, + SE_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, + SE_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, + SE_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, + SE_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, + SE_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, + SE_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = SE_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, + SE_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = SE_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, + SE_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = SE_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, + SE_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = SE_IMAGE_CREATE_EXTENDED_USAGE_BIT, + SE_IMAGE_CREATE_DISJOINT_BIT_KHR = SE_IMAGE_CREATE_DISJOINT_BIT, + SE_IMAGE_CREATE_ALIAS_BIT_KHR = SE_IMAGE_CREATE_ALIAS_BIT, + SE_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeImageCreateFlagBits; + typedef SeFlags SeImageCreateFlags; + + typedef enum SeSampleCountFlagBits { + SE_SAMPLE_COUNT_1_BIT = 0x00000001, + SE_SAMPLE_COUNT_2_BIT = 0x00000002, + SE_SAMPLE_COUNT_4_BIT = 0x00000004, + SE_SAMPLE_COUNT_8_BIT = 0x00000008, + SE_SAMPLE_COUNT_16_BIT = 0x00000010, + SE_SAMPLE_COUNT_32_BIT = 0x00000020, + SE_SAMPLE_COUNT_64_BIT = 0x00000040, + SE_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeSampleCountFlagBits; + typedef SeFlags SeSampleCountFlags; + + typedef enum SeQueueFlagBits { + SE_QUEUE_GRAPHICS_BIT = 0x00000001, + SE_QUEUE_COMPUTE_BIT = 0x00000002, + SE_QUEUE_TRANSFER_BIT = 0x00000004, + SE_QUEUE_SPARSE_BINDING_BIT = 0x00000008, + SE_QUEUE_PROTECTED_BIT = 0x00000010, + SE_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeQueueFlagBits; + typedef SeFlags SeQueueFlags; + + typedef enum SeMemoryPropertyFlagBits { + SE_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, + SE_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, + SE_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, + SE_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, + SE_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, + SE_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, + SE_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, + SE_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, + SE_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeMemoryPropertyFlagBits; + typedef SeFlags SeMemoryPropertyFlags; + + typedef enum SeMemoryHeapFlagBits { + SE_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, + SE_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, + SE_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = SE_MEMORY_HEAP_MULTI_INSTANCE_BIT, + SE_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeMemoryHeapFlagBits; + typedef SeFlags SeMemoryHeapFlags; + typedef SeFlags SeDeviceCreateFlags; + + typedef enum SeDeviceQueueCreateFlagBits { + SE_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, + SE_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeDeviceQueueCreateFlagBits; + typedef SeFlags SeDeviceQueueCreateFlags; + + typedef enum SePipelineStageFlagBits { + SE_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, + SE_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, + SE_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, + SE_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, + SE_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, + SE_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, + SE_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, + SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, + SE_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, + SE_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, + SE_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, + SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, + SE_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, + SE_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, + SE_PIPELINE_STAGE_HOST_BIT = 0x00004000, + SE_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, + SE_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, + SE_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, + SE_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, + SE_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, + SE_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, + SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000, + SE_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000, + SE_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, + SE_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, + SE_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, + SE_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SePipelineStageFlagBits; + typedef SeFlags SePipelineStageFlags; + typedef SeFlags SeMemoryMapFlags; + + typedef enum SeImageAspectFlagBits { + SE_IMAGE_ASPECT_COLOR_BIT = 0x00000001, + SE_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, + SE_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, + SE_IMAGE_ASPECT_METADATA_BIT = 0x00000008, + SE_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, + SE_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, + SE_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, + SE_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, + SE_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, + SE_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, + SE_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, + SE_IMAGE_ASPECT_PLANE_0_BIT_KHR = SE_IMAGE_ASPECT_PLANE_0_BIT, + SE_IMAGE_ASPECT_PLANE_1_BIT_KHR = SE_IMAGE_ASPECT_PLANE_1_BIT, + SE_IMAGE_ASPECT_PLANE_2_BIT_KHR = SE_IMAGE_ASPECT_PLANE_2_BIT, + SE_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeImageAspectFlagBits; + typedef SeFlags SeImageAspectFlags; + + typedef enum SeSparseImageFormatFlagBits { + SE_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, + SE_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002, + SE_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, + SE_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeSparseImageFormatFlagBits; + typedef SeFlags SeSparseImageFormatFlags; + + typedef enum SeSparseMemoryBindFlagBits { + SE_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, + SE_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeSparseMemoryBindFlagBits; + typedef SeFlags SeSparseMemoryBindFlags; + + typedef enum SeFenceCreateFlagBits { + SE_FENCE_CREATE_SIGNALED_BIT = 0x00000001, + SE_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeFenceCreateFlagBits; + typedef SeFlags SeFenceCreateFlags; + typedef SeFlags SeSemaphoreCreateFlags; + typedef SeFlags SeEventCreateFlags; + typedef SeFlags SeQueryPoolCreateFlags; + + typedef enum SeQueryPipelineStatisticFlagBits { + SE_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, + SE_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, + SE_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, + SE_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, + SE_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, + SE_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, + SE_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, + SE_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, + SE_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, + SE_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, + SE_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, + SE_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeQueryPipelineStatisticFlagBits; + typedef SeFlags SeQueryPipelineStatisticFlags; + + typedef enum SeQueryResultFlagBits { + SE_QUERY_RESULT_64_BIT = 0x00000001, + SE_QUERY_RESULT_WAIT_BIT = 0x00000002, + SE_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, + SE_QUERY_RESULT_PARTIAL_BIT = 0x00000008, + SE_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeQueryResultFlagBits; + typedef SeFlags SeQueryResultFlags; + + typedef enum SeBufferCreateFlagBits { + SE_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, + SE_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, + SE_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, + SE_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, + SE_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000010, + SE_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeBufferCreateFlagBits; + typedef SeFlags SeBufferCreateFlags; + + typedef enum SeBufferUsageFlagBits { + SE_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, + SE_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, + SE_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, + SE_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, + SE_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, + SE_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, + SE_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, + SE_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, + SE_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, + SE_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, + SE_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, + SE_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, + SE_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400, + SE_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 0x00020000, + SE_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeBufferUsageFlagBits; + typedef SeFlags SeBufferUsageFlags; + typedef SeFlags SeBufferViewCreateFlags; + + typedef enum SeImageViewCreateFlagBits { + SE_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, + SE_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeImageViewCreateFlagBits; + typedef SeFlags SeImageViewCreateFlags; + + typedef enum SeShaderModuleCreateFlagBits { + SE_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeShaderModuleCreateFlagBits; + typedef SeFlags SeShaderModuleCreateFlags; + typedef SeFlags SePipelineCacheCreateFlags; + + typedef enum SePipelineCreateFlagBits { + SE_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, + SE_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, + SE_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, + SE_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, + SE_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, + SE_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, + SE_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, + SE_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, + SE_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = SE_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, + SE_PIPELINE_CREATE_DISPATCH_BASE_KHR = SE_PIPELINE_CREATE_DISPATCH_BASE, + SE_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SePipelineCreateFlagBits; + typedef SeFlags SePipelineCreateFlags; + + typedef enum SePipelineShaderStageCreateFlagBits { + SE_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001, + SE_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002, + SE_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SePipelineShaderStageCreateFlagBits; + typedef SeFlags SePipelineShaderStageCreateFlags; + + typedef enum SeShaderStageFlagBits { + SE_SHADER_STAGE_VERTEX_BIT = 0x00000001, + SE_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, + SE_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, + SE_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, + SE_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, + SE_SHADER_STAGE_COMPUTE_BIT = 0x00000020, + SE_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, + SE_SHADER_STAGE_ALL = 0x7FFFFFFF, + SE_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100, + SE_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200, + SE_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400, + SE_SHADER_STAGE_MISS_BIT_NV = 0x00000800, + SE_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000, + SE_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000, + SE_SHADER_STAGE_TASK_BIT_NV = 0x00000040, + SE_SHADER_STAGE_MESH_BIT_NV = 0x00000080, + SE_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeShaderStageFlagBits; + typedef SeFlags SePipelineVertexInputStateCreateFlags; + typedef SeFlags SePipelineInputAssemblyStateCreateFlags; + typedef SeFlags SePipelineTessellationStateCreateFlags; + typedef SeFlags SePipelineViewportStateCreateFlags; + typedef SeFlags SePipelineRasterizationStateCreateFlags; + + typedef enum SeCullModeFlagBits { + SE_CULL_MODE_NONE = 0, + SE_CULL_MODE_FRONT_BIT = 0x00000001, + SE_CULL_MODE_BACK_BIT = 0x00000002, + SE_CULL_MODE_FRONT_AND_BACK = 0x00000003, + SE_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeCullModeFlagBits; + typedef SeFlags SeCullModeFlags; + typedef SeFlags SePipelineMultisampleStateCreateFlags; + typedef SeFlags SePipelineDepthStencilStateCreateFlags; + typedef SeFlags SePipelineColorBlendStateCreateFlags; + + typedef enum SeColorComponentFlagBits { + SE_COLOR_COMPONENT_R_BIT = 0x00000001, + SE_COLOR_COMPONENT_G_BIT = 0x00000002, + SE_COLOR_COMPONENT_B_BIT = 0x00000004, + SE_COLOR_COMPONENT_A_BIT = 0x00000008, + SE_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeColorComponentFlagBits; + typedef SeFlags SeColorComponentFlags; + typedef SeFlags SePipelineDynamicStateCreateFlags; + typedef SeFlags SePipelineLayoutCreateFlags; + typedef SeFlags SeShaderStageFlags; + + typedef enum SeSamplerCreateFlagBits { + SE_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001, + SE_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002, + SE_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeSamplerCreateFlagBits; + typedef SeFlags SeSamplerCreateFlags; + + typedef enum SeDescriptorSetLayoutCreateFlagBits { + SE_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, + SE_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002, + SE_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeDescriptorSetLayoutCreateFlagBits; + typedef SeFlags SeDescriptorSetLayoutCreateFlags; + + typedef enum SeDescriptorPoolCreateFlagBits { + SE_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, + SE_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002, + SE_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeDescriptorPoolCreateFlagBits; + typedef SeFlags SeDescriptorPoolCreateFlags; + typedef SeFlags SeDescriptorPoolResetFlags; + + typedef enum SeFramebufferCreateFlagBits { + SE_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = 0x00000001, + SE_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeFramebufferCreateFlagBits; + typedef SeFlags SeFramebufferCreateFlags; + + typedef enum SeRenderPassCreateFlagBits { + SE_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeRenderPassCreateFlagBits; + typedef SeFlags SeRenderPassCreateFlags; + + typedef enum SeAttachmentDescriptionFlagBits { + SE_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, + SE_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeAttachmentDescriptionFlagBits; + typedef SeFlags SeAttachmentDescriptionFlags; + + typedef enum SeSubpassDescriptionFlagBits { + SE_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, + SE_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, + SE_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeSubpassDescriptionFlagBits; + typedef SeFlags SeSubpassDescriptionFlags; + + typedef enum SeAccessFlagBits { + SE_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, + SE_ACCESS_INDEX_READ_BIT = 0x00000002, + SE_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, + SE_ACCESS_UNIFORM_READ_BIT = 0x00000008, + SE_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, + SE_ACCESS_SHADER_READ_BIT = 0x00000020, + SE_ACCESS_SHADER_WRITE_BIT = 0x00000040, + SE_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, + SE_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, + SE_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, + SE_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, + SE_ACCESS_TRANSFER_READ_BIT = 0x00000800, + SE_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, + SE_ACCESS_HOST_READ_BIT = 0x00002000, + SE_ACCESS_HOST_WRITE_BIT = 0x00004000, + SE_ACCESS_MEMORY_READ_BIT = 0x00008000, + SE_ACCESS_MEMORY_WRITE_BIT = 0x00010000, + SE_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, + SE_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, + SE_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, + SE_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, + SE_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, + SE_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, + SE_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, + SE_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, + SE_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000, + SE_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000, + SE_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, + SE_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeAccessFlagBits; + typedef SeFlags SeAccessFlags; + + typedef enum SeDependencyFlagBits { + SE_DEPENDENCY_BY_REGION_BIT = 0x00000001, + SE_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, + SE_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, + SE_DEPENDENCY_VIEW_LOCAL_BIT_KHR = SE_DEPENDENCY_VIEW_LOCAL_BIT, + SE_DEPENDENCY_DEVICE_GROUP_BIT_KHR = SE_DEPENDENCY_DEVICE_GROUP_BIT, + SE_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeDependencyFlagBits; + typedef SeFlags SeDependencyFlags; + + typedef enum SeCommandPoolCreateFlagBits { + SE_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, + SE_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, + SE_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, + SE_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeCommandPoolCreateFlagBits; + typedef SeFlags SeCommandPoolCreateFlags; + + typedef enum SeCommandPoolResetFlagBits { + SE_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, + SE_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeCommandPoolResetFlagBits; + typedef SeFlags SeCommandPoolResetFlags; + + typedef enum SeCommandBufferUsageFlagBits { + SE_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, + SE_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, + SE_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, + SE_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeCommandBufferUsageFlagBits; + typedef SeFlags SeCommandBufferUsageFlags; + + typedef enum SeQueryControlFlagBits { + SE_QUERY_CONTROL_PRECISE_BIT = 0x00000001, + SE_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeQueryControlFlagBits; + typedef SeFlags SeQueryControlFlags; + + typedef enum SeCommandBufferResetFlagBits { + SE_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, + SE_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeCommandBufferResetFlagBits; + typedef SeFlags SeCommandBufferResetFlags; + + typedef enum SeStencilFaceFlagBits { + SE_STENCIL_FACE_FRONT_BIT = 0x00000001, + SE_STENCIL_FACE_BACK_BIT = 0x00000002, + SE_STENCIL_FACE_FRONT_AND_BACK = 0x00000003, + SE_STENCIL_FRONT_AND_BACK = SE_STENCIL_FACE_FRONT_AND_BACK, + SE_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF + } SeStencilFaceFlagBits; + typedef SeFlags SeStencilFaceFlags; + } } \ No newline at end of file diff --git a/src/Engine/Graphics/GraphicsResources.cpp b/src/Engine/Graphics/GraphicsResources.cpp index 421642a..2fd96af 100644 --- a/src/Engine/Graphics/GraphicsResources.cpp +++ b/src/Engine/Graphics/GraphicsResources.cpp @@ -1,8 +1,8 @@ #include "GraphicsResources.h" -using namespace Seele; +using namespace Seele::Gfx; -void Seele::DescriptorLayout::addDescriptorBinding(uint32 bindingIndex, SeDescriptorType type, uint32 arrayCount) +void DescriptorLayout::addDescriptorBinding(uint32 bindingIndex, SeDescriptorType type, uint32 arrayCount) { if (descriptorBindings.size() <= bindingIndex) { @@ -15,14 +15,14 @@ void Seele::DescriptorLayout::addDescriptorBinding(uint32 bindingIndex, SeDescri descriptorBindings[bindingIndex] = binding; } -PDescriptorSet Seele::DescriptorLayout::allocatedDescriptorSet() +PDescriptorSet DescriptorLayout::allocatedDescriptorSet() { PDescriptorSet result; allocator->allocateDescriptorSet(result); return result; } -void Seele::PipelineLayout::addDescriptorLayout(uint32 setIndex, PDescriptorLayout layout) +void PipelineLayout::addDescriptorLayout(uint32 setIndex, PDescriptorLayout layout) { if (descriptorSetLayouts.size() <= setIndex) { @@ -48,7 +48,7 @@ void Seele::PipelineLayout::addDescriptorLayout(uint32 setIndex, PDescriptorLayo } } -void Seele::PipelineLayout::addPushConstants(const SePushConstantRange& pushConstant) +void PipelineLayout::addPushConstants(const SePushConstantRange& pushConstant) { pushConstants.add(pushConstant); } diff --git a/src/Engine/Graphics/GraphicsResources.h b/src/Engine/Graphics/GraphicsResources.h index 8c3a393..b426f82 100644 --- a/src/Engine/Graphics/GraphicsResources.h +++ b/src/Engine/Graphics/GraphicsResources.h @@ -9,12 +9,6 @@ namespace Seele { - struct SePushConstantRange { - SeShaderStageFlags stageFlags; - uint32_t offset; - uint32_t size; - }; - struct GraphicsInitializer { const char* windowLayoutFile; @@ -46,7 +40,6 @@ namespace Seele { } }; - DECLARE_REF(Graphics); struct WindowCreateInfo { int32 width; @@ -54,170 +47,181 @@ namespace Seele const char* title; bool bFullscreen; }; - - class RenderCommandBase + namespace Gfx { + struct SePushConstantRange { + SeShaderStageFlags stageFlags; + uint32_t offset; + uint32_t size; + }; - }; - DEFINE_REF(RenderCommandBase); - class SamplerState - { - public: - virtual ~SamplerState() + + + class RenderCommandBase { - } - }; - DEFINE_REF(SamplerState); - class DescriptorBinding - { - public: - DescriptorBinding() - : binding(0) - , descriptorType(SE_DESCRIPTOR_TYPE_MAX_ENUM) - , descriptorCount(-1) - , shaderStages(SE_SHADER_STAGE_ALL) - {} - DescriptorBinding(const DescriptorBinding& other) - : binding(other.binding) - , descriptorType(other.descriptorType) - , descriptorCount(other.descriptorCount) - , shaderStages(other.shaderStages) - {} - void operator=(const DescriptorBinding& other) + }; + DEFINE_REF(RenderCommandBase); + + class SamplerState { - binding = other.binding; - descriptorType = other.descriptorType; - descriptorCount = other.descriptorCount; - shaderStages = other.shaderStages; - } - uint32_t binding; - SeDescriptorType descriptorType; - uint32_t descriptorCount; - SeShaderStageFlags shaderStages; - }; - DEFINE_REF(DescriptorBinding); + public: + virtual ~SamplerState() + { - DECLARE_REF(DescriptorSet); - class DescriptorAllocator - { - public: - DescriptorAllocator() {} - ~DescriptorAllocator() {} - virtual void allocateDescriptorSet(PDescriptorSet& descriptorSet) = 0; - }; - DEFINE_REF(DescriptorAllocator); - DECLARE_REF(UniformBuffer); - DECLARE_REF(StructuredBuffer); - DECLARE_REF(Texture); - class DescriptorSet - { - public: - virtual ~DescriptorSet() {} - virtual void writeChanges() = 0; - virtual void updateBuffer(uint32 binding, PUniformBuffer uniformBuffer) = 0; - virtual void updateBuffer(uint32 binding, PStructuredBuffer structuredBuffer) = 0; - virtual void updateSampler(uint32 binding, PSamplerState samplerState) = 0; - virtual void updateTexture(uint32 binding, PTexture texture, PSamplerState samplerState = nullptr) = 0; - virtual bool operator<(PDescriptorSet other) = 0; - }; - DEFINE_REF(DescriptorSet); - - class DescriptorLayout - { - public: - DescriptorLayout() {} - virtual ~DescriptorLayout(){} - void operator=(const DescriptorLayout& other) + } + }; + DEFINE_REF(SamplerState); + class DescriptorBinding { - descriptorBindings.resize(other.descriptorBindings.size()); - std::memcpy(descriptorBindings.data(), other.descriptorBindings.data(), sizeof(DescriptorLayout) * descriptorBindings.size()); - } - virtual void create() = 0; - virtual void addDescriptorBinding(uint32 binding, SeDescriptorType type, uint32 arrayCount = 1); - virtual PDescriptorSet allocatedDescriptorSet(); - const Array& getBindings() const { return descriptorBindings; } - protected: - Array descriptorBindings; - PDescriptorAllocator allocator; - friend class PipelineLayout; - friend class DescriptorAllocator; - }; - DEFINE_REF(DescriptorLayout); - class PipelineLayout - { - public: - PipelineLayout() {} - virtual ~PipelineLayout() {} - virtual void create() = 0; - void addDescriptorLayout(uint32 setIndex, PDescriptorLayout layout); - void addPushConstants(const SePushConstantRange& pushConstants); - virtual uint32 getHash() const = 0; - protected: - Array descriptorSetLayouts; - Array pushConstants; - }; - DEFINE_REF(PipelineLayout); - class VertexDeclaration - { + public: + DescriptorBinding() + : binding(0) + , descriptorType(SE_DESCRIPTOR_TYPE_MAX_ENUM) + , descriptorCount(-1) + , shaderStages(SE_SHADER_STAGE_ALL) + {} + DescriptorBinding(const DescriptorBinding& other) + : binding(other.binding) + , descriptorType(other.descriptorType) + , descriptorCount(other.descriptorCount) + , shaderStages(other.shaderStages) + {} + void operator=(const DescriptorBinding& other) + { + binding = other.binding; + descriptorType = other.descriptorType; + descriptorCount = other.descriptorCount; + shaderStages = other.shaderStages; + } + uint32_t binding; + SeDescriptorType descriptorType; + uint32_t descriptorCount; + SeShaderStageFlags shaderStages; + }; + DEFINE_REF(DescriptorBinding); - }; - DEFINE_REF(VertexDeclaration); - class GraphicsPipeline - { - public: - virtual ~GraphicsPipeline() + DECLARE_REF(DescriptorSet); + class DescriptorAllocator + { + public: + DescriptorAllocator() {} + ~DescriptorAllocator() {} + virtual void allocateDescriptorSet(PDescriptorSet& descriptorSet) = 0; + }; + DEFINE_REF(DescriptorAllocator); + DECLARE_REF(UniformBuffer); + DECLARE_REF(StructuredBuffer); + DECLARE_REF(Texture); + class DescriptorSet + { + public: + virtual ~DescriptorSet() {} + virtual void writeChanges() = 0; + virtual void updateBuffer(uint32 binding, PUniformBuffer uniformBuffer) = 0; + virtual void updateBuffer(uint32 binding, PStructuredBuffer structuredBuffer) = 0; + virtual void updateSampler(uint32 binding, PSamplerState samplerState) = 0; + virtual void updateTexture(uint32 binding, PTexture texture, PSamplerState samplerState = nullptr) = 0; + virtual bool operator<(PDescriptorSet other) = 0; + }; + DEFINE_REF(DescriptorSet); + + class DescriptorLayout + { + public: + DescriptorLayout() {} + virtual ~DescriptorLayout() {} + void operator=(const DescriptorLayout& other) + { + descriptorBindings.resize(other.descriptorBindings.size()); + std::memcpy(descriptorBindings.data(), other.descriptorBindings.data(), sizeof(DescriptorLayout) * descriptorBindings.size()); + } + virtual void create() = 0; + virtual void addDescriptorBinding(uint32 binding, SeDescriptorType type, uint32 arrayCount = 1); + virtual PDescriptorSet allocatedDescriptorSet(); + const Array& getBindings() const { return descriptorBindings; } + protected: + Array descriptorBindings; + PDescriptorAllocator allocator; + friend class PipelineLayout; + friend class DescriptorAllocator; + }; + DEFINE_REF(DescriptorLayout); + class PipelineLayout + { + public: + PipelineLayout() {} + virtual ~PipelineLayout() {} + virtual void create() = 0; + void addDescriptorLayout(uint32 setIndex, PDescriptorLayout layout); + void addPushConstants(const SePushConstantRange& pushConstants); + virtual uint32 getHash() const = 0; + protected: + Array descriptorSetLayouts; + Array pushConstants; + }; + DEFINE_REF(PipelineLayout); + class VertexDeclaration { - } - }; - DEFINE_REF(GraphicsPipeline); - class UniformBuffer - { - public: - virtual ~UniformBuffer() + }; + DEFINE_REF(VertexDeclaration); + class GraphicsPipeline + { + public: + virtual ~GraphicsPipeline() + { + + } + }; + DEFINE_REF(GraphicsPipeline); + class UniformBuffer + { + public: + virtual ~UniformBuffer() + { + + } + }; + DEFINE_REF(UniformBuffer); + class Viewport { - } - }; - DEFINE_REF(UniformBuffer); - class Viewport - { - - }; - DEFINE_REF(Viewport); - class VertexBuffer - { - - }; - DEFINE_REF(VertexBuffer); - class IndexBuffer - { - - }; - DEFINE_REF(IndexBuffer); - class StructuredBuffer - { - public: - virtual ~StructuredBuffer() + }; + DEFINE_REF(Viewport); + class VertexBuffer { - } - }; - DEFINE_REF(StructuredBuffer); - class Texture - { + }; + DEFINE_REF(VertexBuffer); + class IndexBuffer + { - }; - DEFINE_REF(Texture); - class Texture2D : public Texture - { + }; + DEFINE_REF(IndexBuffer); + class StructuredBuffer + { + public: + virtual ~StructuredBuffer() + { - }; - DEFINE_REF(Texture2D); - class RenderPass - { + } + }; + DEFINE_REF(StructuredBuffer); + class Texture + { - }; - DEFINE_REF(RenderPass); + }; + DEFINE_REF(Texture); + class Texture2D : public Texture + { + + }; + DEFINE_REF(Texture2D); + class RenderPass + { + + }; + DEFINE_REF(RenderPass); + } } \ No newline at end of file diff --git a/src/Engine/Graphics/RenderPath.cpp b/src/Engine/Graphics/RenderPath.cpp index bfae90a..6cac146 100644 --- a/src/Engine/Graphics/RenderPath.cpp +++ b/src/Engine/Graphics/RenderPath.cpp @@ -1,6 +1,6 @@ #include "RenderPath.h" -Seele::RenderPath::RenderPath(PGraphics graphics) +Seele::RenderPath::RenderPath(Gfx::PGraphics graphics) : graphics(graphics) { } diff --git a/src/Engine/Graphics/RenderPath.h b/src/Engine/Graphics/RenderPath.h index 1a1a128..091e29a 100644 --- a/src/Engine/Graphics/RenderPath.h +++ b/src/Engine/Graphics/RenderPath.h @@ -6,7 +6,7 @@ namespace Seele class RenderPath { public: - RenderPath(PGraphics graphics); + RenderPath(Gfx::PGraphics graphics); virtual ~RenderPath(); virtual void applyArea(Rect area) = 0; virtual void init() = 0; @@ -14,7 +14,7 @@ namespace Seele virtual void render() = 0; virtual void endFrame() = 0; protected: - PGraphics graphics; + Gfx::PGraphics graphics; Rect area; }; DEFINE_REF(RenderPath); diff --git a/src/Engine/Graphics/SceneRenderPath.cpp b/src/Engine/Graphics/SceneRenderPath.cpp index 8f60046..f7e5a1d 100644 --- a/src/Engine/Graphics/SceneRenderPath.cpp +++ b/src/Engine/Graphics/SceneRenderPath.cpp @@ -1,6 +1,6 @@ #include "SceneRenderPath.h" -Seele::SceneRenderPath::SceneRenderPath(PGraphics graphics) +Seele::SceneRenderPath::SceneRenderPath(Gfx::PGraphics graphics) : RenderPath(graphics) { } diff --git a/src/Engine/Graphics/SceneRenderPath.h b/src/Engine/Graphics/SceneRenderPath.h index d2c9b4a..cd82f06 100644 --- a/src/Engine/Graphics/SceneRenderPath.h +++ b/src/Engine/Graphics/SceneRenderPath.h @@ -6,7 +6,7 @@ namespace Seele class SceneRenderPath : public RenderPath { public: - SceneRenderPath(PGraphics graphics); + SceneRenderPath(Gfx::PGraphics graphics); virtual ~SceneRenderPath(); virtual void applyArea(Rect area) override; virtual void init() override; diff --git a/src/Engine/Graphics/SceneView.cpp b/src/Engine/Graphics/SceneView.cpp index aa05832..7d8d71e 100644 --- a/src/Engine/Graphics/SceneView.cpp +++ b/src/Engine/Graphics/SceneView.cpp @@ -1,7 +1,7 @@ #include "SceneView.h" #include "SceneRenderPath.h" -Seele::SceneView::SceneView(PGraphics graphics) +Seele::SceneView::SceneView(Gfx::PGraphics graphics) : View(graphics) { renderer = new SceneRenderPath(graphics); diff --git a/src/Engine/Graphics/SceneView.h b/src/Engine/Graphics/SceneView.h index 2a5c4ac..304c3fb 100644 --- a/src/Engine/Graphics/SceneView.h +++ b/src/Engine/Graphics/SceneView.h @@ -5,7 +5,7 @@ namespace Seele class SceneView : public View { public: - SceneView(PGraphics graphics); + SceneView(Gfx::PGraphics graphics); ~SceneView(); }; } \ No newline at end of file diff --git a/src/Engine/Graphics/View.cpp b/src/Engine/Graphics/View.cpp index 817b8b2..93b3ae1 100644 --- a/src/Engine/Graphics/View.cpp +++ b/src/Engine/Graphics/View.cpp @@ -1,6 +1,6 @@ #include "View.h" -Seele::View::View(PGraphics graphics) +Seele::View::View(Gfx::PGraphics graphics) : graphics(graphics) { } diff --git a/src/Engine/Graphics/View.h b/src/Engine/Graphics/View.h index 96da4f3..b935898 100644 --- a/src/Engine/Graphics/View.h +++ b/src/Engine/Graphics/View.h @@ -2,18 +2,17 @@ #include "RenderPath.h" namespace Seele { - DECLARE_REF(Graphics); // A view is a part of the window, which can be anything from a viewport to an editor class View { public: - View(PGraphics graphics); + View(Gfx::PGraphics graphics); virtual ~View(); void beginFrame(); void endFrame(); void applyArea(Rect area); protected: - PGraphics graphics; + Gfx::PGraphics graphics; PRenderPath renderer; }; diff --git a/src/Engine/Graphics/Vulkan/CMakeLists.txt b/src/Engine/Graphics/Vulkan/CMakeLists.txt index eb4c205..d7d54b4 100644 --- a/src/Engine/Graphics/Vulkan/CMakeLists.txt +++ b/src/Engine/Graphics/Vulkan/CMakeLists.txt @@ -2,6 +2,7 @@ target_sources(SeeleEngine PRIVATE VulkanAllocator.h VulkanAllocator.cpp + VulkanBuffer.cpp VulkanGraphics.h VulkanGraphics.cpp VulkanGraphicsResources.h diff --git a/src/Engine/Graphics/Vulkan/VulkanAllocator.cpp b/src/Engine/Graphics/Vulkan/VulkanAllocator.cpp index 1000af0..5c9fe82 100644 --- a/src/Engine/Graphics/Vulkan/VulkanAllocator.cpp +++ b/src/Engine/Graphics/Vulkan/VulkanAllocator.cpp @@ -1,6 +1,80 @@ #include "VulkanAllocator.h" #include "VulkanGraphics.h" -Seele::VulkanAllocator::VulkanAllocator(PVulkanGraphics graphics) +#include "VulkanInitializer.h" +#include "Math/MemCRC.h" + +using namespace Seele::Vulkan; + +SubAllocation::SubAllocation(Allocation* owner, uint32 allocatedOffset, uint32 size, uint32 alignedOffset, uint32 allocatedSize) + : owner(owner) + , size(size) + , allocatedOffset(allocatedOffset) + , alignedOffset(alignedOffset) + , allocatedSize(allocatedSize) +{ +} + +Allocation::Allocation(PGraphics graphics, Allocator* allocator, uint32 size, uint32 memoryTypeIndex, VkMemoryPropertyFlags properties, bool isDedicated) + : device(graphics->getDevice()) + , allocator(allocator) + , bytesAllocated(0) + , bytesUsed(0) + , properties(properties) + , memoryTypeIndex(memoryTypeIndex) +{ + VkMemoryAllocateInfo allocInfo = + init::MemoryAllocateInfo(); + allocInfo.allocationSize = size; + allocInfo.memoryTypeIndex = memoryTypeIndex; + VK_CHECK(vkAllocateMemory(device, &allocInfo, nullptr, &allocatedMemory)); + bytesAllocated = size; + PSubAllocation freeRange = new SubAllocation(this, 0, size, 0, size); + freeRanges.add(freeRange); +} + +PSubAllocation Allocation::getSuballocation(uint32 size, uint32 alignment) +{ + if (isDedicated) + { + if (activeAllocations.size() == 0) + { + assert(size == bytesAllocated); + activeAllocations.add(freeRanges.back()); + freeRanges.clear(); + } + else + { + return nullptr; + } + } + for (int i = 0; i < freeRanges.size(); ++i) + { + PSubAllocation freeAllocation = freeRanges[i]; + uint32 allocatedOffset = freeAllocation->allocatedOffset; + uint32 alignedOffset = align(allocatedOffset, alignment); + uint32 alignmentAdjustment = alignedOffset - allocatedOffset; + uint32 size = alignmentAdjustment + size; + if (freeAllocation->size == size) + { + freeRanges.remove(i); + activeAllocations.add(freeAllocation); + return freeAllocation; + } + else if (size < freeAllocation->allocatedSize) + { + freeAllocation->size -= size; + freeAllocation->allocatedSize -= size; + freeAllocation->allocatedOffset += allocatedOffset; + freeAllocation->alignedOffset += allocatedOffset; + PSubAllocation subAlloc = new VulkanSubAllocation(this, allocatedOffset, size, alignedOffset, size); + activeAllocations.add(subAlloc); + return subAlloc; + } + } + return nullptr; +} + +Allocator::Allocator(PGraphics graphics) : graphics(graphics) { vkGetPhysicalDeviceMemoryProperties(graphics->getPhysicalDevice(), &memProperties); @@ -11,19 +85,39 @@ Seele::VulkanAllocator::VulkanAllocator(PVulkanGraphics graphics) HeapInfo& heapInfo = heaps[i]; heapInfo.maxSize = memoryHeap.size; } - for (size_t i = 0; i < memProperties.memoryTypeCount; i++) +} + +Allocator::~Allocator() +{ +} + +PSubAllocation Allocator::allocate(uint64 size, const VkMemoryRequirements2& memRequirements2, VkMemoryPropertyFlags properties) +{ + // no suitable allocations found, allocate new block + const VkMemoryRequirements& requirements = memRequirements2.memoryRequirements; + uint32 memoryTypeIndex; + VK_CHECK(findMemoryType(requirements.memoryTypeBits, properties, &memoryTypeIndex)); + + bool isDedicated = memRequirements2.pNext != nullptr; + PAllocation newAllocation = new Allocation(graphics, this, MemoryBlockSize, memoryTypeIndex, properties, isDedicated); + uint32 heapIndex = memProperties.memoryTypes[memoryTypeIndex].heapIndex; + heaps[heapIndex].allocations.add(newAllocation); + return newAllocation->getSuballocation(size, requirements.alignment); +} + +VkResult Allocator::findMemoryType(uint32 typeBits, VkMemoryPropertyFlags properties, uint32* typeIndex) +{ + for (int memoryIndex = 0; memoryIndex < memProperties.memoryTypeCount && typeBits; ++memoryIndex) { - VkMemoryType& type = memProperties.memoryTypes[i]; - HeapInfo& heapInfo = heaps[type.heapIndex]; - heapInfo.types.add(type); + if ((typeBits & 1) == 1) + { + if ((memProperties.memoryTypes[memoryIndex].propertyFlags & properties) == properties) + { + *typeIndex = memoryIndex; + return VK_SUCCESS; + } + } + typeBits >>= 1; } -} - -Seele::VulkanAllocator::~VulkanAllocator() -{ -} - -Seele::PVulkanSubAllocation Seele::VulkanAllocator::allocate(uint64 size, VkMemoryPropertyFlags properties) -{ - return PVulkanSubAllocation(); -} + return VK_ERROR_FORMAT_NOT_SUPPORTED; +} \ No newline at end of file diff --git a/src/Engine/Graphics/Vulkan/VulkanAllocator.h b/src/Engine/Graphics/Vulkan/VulkanAllocator.h index c2c1a0e..6fc94c7 100644 --- a/src/Engine/Graphics/Vulkan/VulkanAllocator.h +++ b/src/Engine/Graphics/Vulkan/VulkanAllocator.h @@ -6,38 +6,69 @@ namespace Seele { - DECLARE_REF(VulkanGraphics); - class VulkanSubAllocation + namespace Vulkan { - - }; - DEFINE_REF(VulkanSubAllocation); - class VulkanAllocation - { - private: - VkDeviceMemory allocatedMemory; - VkDeviceSize bytesAllocated; - VkDeviceSize bytesUsed; - uint8 isDedicated; - }; - DEFINE_REF(VulkanAllocation); - - class VulkanAllocator - { - public: - VulkanAllocator(PVulkanGraphics graphics); - ~VulkanAllocator(); - PVulkanSubAllocation allocate(uint64 size, VkMemoryPropertyFlags properties); - private: - struct HeapInfo + DECLARE_REF(Graphics); + class Allocation; + class Allocator; + class SubAllocation { - uint32 maxSize = 0; - Array allocations; - Array types; + public: + SubAllocation(Allocation* owner, uint32 allocatedOffset, uint32 size, uint32 alignedOffset, uint32 allocatedSize); + private: + Allocation* owner; + uint32 allocatedOffset; + uint32 size; + uint32 alignedOffset; + uint32 allocatedSize; + friend class Allocation; + friend class Allocator; }; - Array heaps; - PVulkanGraphics graphics; - VkPhysicalDeviceMemoryProperties memProperties; - }; - DEFINE_REF(VulkanAllocator); + DEFINE_REF(SubAllocation); + class Allocation + { + public: + Allocation(PGraphics graphics, Allocator* allocator, uint32 size, uint32 memoryTypeIndex, VkMemoryPropertyFlags properties, bool isDedicated); + PSubAllocation getSuballocation(uint32 size, uint32 alignment); + private: + Allocator* allocator; + VkDevice device; + VkDeviceMemory allocatedMemory; + VkDeviceSize bytesAllocated; + VkDeviceSize bytesUsed; + VkMemoryPropertyFlags properties; + Array activeAllocations; + Array freeRanges; + void* mappedPointer; + uint8 isDedicated : 1; + uint8 canMap : 1; + uint8 memoryTypeIndex; + friend class Allocator; + }; + DEFINE_REF(Allocation); + + class Allocator + { + public: + Allocator(PGraphics graphics); + ~Allocator(); + PSubAllocation allocate(uint64 size, const VkMemoryRequirements2& requirements, VkMemoryPropertyFlags props); + + private: + enum + { + MemoryBlockSize = 64 * 1024 * 1024 // 64MB + }; + struct HeapInfo + { + uint32 maxSize = 0; + Array allocations; + }; + Array heaps; + VkResult findMemoryType(uint32 typeBits, VkMemoryPropertyFlags properties, uint32* typeIndex); + PGraphics graphics; + VkPhysicalDeviceMemoryProperties memProperties; + }; + DEFINE_REF(Allocator); + } } \ No newline at end of file diff --git a/src/Engine/Graphics/Vulkan/VulkanBuffer.cpp b/src/Engine/Graphics/Vulkan/VulkanBuffer.cpp new file mode 100644 index 0000000..136223a --- /dev/null +++ b/src/Engine/Graphics/Vulkan/VulkanBuffer.cpp @@ -0,0 +1,67 @@ +#include "VulkanGraphicsResources.h" + +using namespace Seele::Vulkan; + +void Buffer::executeOwnershipBarrier(QueueType newOwner) +{ + VkBufferMemoryBarrier barrier = + init::BufferMemoryBarrier(); + CommandBufferManager* sourceManager = getCommands(); + CommandBufferManager* dstManager = nullptr; + VkPipelineStageFlags srcStage = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + VkPipelineStageFlags dstStage = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + if (currentOwner == QueueType::TRANSFER) + { + barrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; + barrier.srcQueueFamilyIndex = device->getTransferQueue()->getFamilyIndex(); + srcStage = VK_PIPELINE_STAGE_TRANSFER_BIT; + } + else if (currentOwner == QueueType::COMPUTE) + { + barrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; + barrier.srcQueueFamilyIndex = device->getComputeQueue()->getFamilyIndex(); + srcStage = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT; + } + else if (currentOwner == QueueType::GRAPHICS) + { + barrier.srcAccessMask = getSourceAccessMask(); + barrier.srcQueueFamilyIndex = device->getGraphicsQueue()->getFamilyIndex(); + srcStage = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT; + } + if (newOwner == QueueType::TRANSFER) + { + barrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; + barrier.dstQueueFamilyIndex = device->getTransferQueue()->getFamilyIndex(); + dstStage = VK_PIPELINE_STAGE_TRANSFER_BIT; + dstManager = device->getRHIDevice().getTransferCommands(); + } + else if (newOwner == QueueType::COMPUTE) + { + barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; + barrier.dstQueueFamilyIndex = device->getComputeQueue()->getFamilyIndex(); + dstStage = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT; + dstManager = device->getRHIDevice().getComputeCommands(); + } + else if (newOwner == QueueType::GRAPHICS) + { + barrier.dstAccessMask = getDestAccessMask(); + barrier.dstQueueFamilyIndex = device->getGraphicsQueue()->getFamilyIndex(); + dstStage = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT; + dstManager = device->getRHIDevice().getGraphicsCommands(); + } + VkCommandBuffer srcCommand = sourceManager->getCmdBuffer()->getHandle(); + VkCommandBuffer dstCommand = dstManager->getCmdBuffer()->getHandle(); + const bool bDynamic = (rhiUsage & BUF_Dynamic) != 0; + uint32_t numBuffers = bDynamic ? NUM_BUFFERS : 1; + VkBufferMemoryBarrier dynamicBarriers[NUM_BUFFERS]; + for (uint32_t i = 0; i < numBuffers; ++i) + { + dynamicBarriers[i] = barrier; + dynamicBarriers[i].buffer = buffers[i]->getHandle(); + dynamicBarriers[i].offset = buffers[i]->getOffset(); + dynamicBarriers[i].size = buffers[i]->getSize(); + } + vkCmdPipelineBarrier(srcCommand, srcStage, dstStage, 0, 0, nullptr, numBuffers, dynamicBarriers, 0, nullptr); + vkCmdPipelineBarrier(dstCommand, srcStage, dstStage, 0, 0, nullptr, numBuffers, dynamicBarriers, 0, nullptr); + sourceManager->submitCommands(); +} \ No newline at end of file diff --git a/src/Engine/Graphics/Vulkan/VulkanCommandBuffer.h b/src/Engine/Graphics/Vulkan/VulkanCommandBuffer.h new file mode 100644 index 0000000..c785c58 --- /dev/null +++ b/src/Engine/Graphics/Vulkan/VulkanCommandBuffer.h @@ -0,0 +1,38 @@ +#include "VulkanGraphicsResources.h" + +namespace Seele +{ + namespace Vulkan + { + class CmdBufferBase : public RenderCommandBase + { + public: + private: + VkCommandBuffer handle; + }; + DEFINE_REF(CmdBuffer); + + class CmdBuffer : public CmdBufferBase + { + + }; + DEFINE_REF(CmdBuffer); + + class CommandBufferManager + { + public: + CommandBufferManager(Vulkan::PGraphics graphics, PVulkanQueue queue); + virtual ~CommandBufferManager(); + PCmdBuffer getCommands(); + PSecondaryCommandBuffer createSecondaryCmdBuffer(); + void submitCommands(PSemaphore signalSemaphore = nullptr); + void waitForBuffer(PCommandbuffer cmdBuffer, float timeToWait = 1.0f); + private: + VkCommandPool commandPool; + QueueType queueType; + uint32 queueFamilyIndex; + Array allocatedBuffers; + }; + DEFINE_REF(VulkanCommandBufferManager); + } +} \ No newline at end of file diff --git a/src/Engine/Graphics/Vulkan/VulkanDescriptorSets.cpp b/src/Engine/Graphics/Vulkan/VulkanDescriptorSets.cpp index 4097c22..c594c0c 100644 --- a/src/Engine/Graphics/Vulkan/VulkanDescriptorSets.cpp +++ b/src/Engine/Graphics/Vulkan/VulkanDescriptorSets.cpp @@ -3,7 +3,10 @@ #include "VulkanGraphics.h" #include "VulkanInitializer.h" -Seele::VulkanDescriptorLayout::~VulkanDescriptorLayout() +using namespace Seele; +using namespace Seele::Vulkan; + +DescriptorLayout::~DescriptorLayout() { if (layoutHandle != VK_NULL_HANDLE) { @@ -11,7 +14,7 @@ Seele::VulkanDescriptorLayout::~VulkanDescriptorLayout() } } -void Seele::VulkanDescriptorLayout::create() +void DescriptorLayout::create() { if (layoutHandle != VK_NULL_HANDLE) { @@ -21,7 +24,7 @@ void Seele::VulkanDescriptorLayout::create() for (size_t i = 0; i < descriptorBindings.size(); ++i) { VkDescriptorSetLayoutBinding& binding = bindings[i]; - const DescriptorBinding& rhiBinding = descriptorBindings[i]; + const Gfx::DescriptorBinding& rhiBinding = descriptorBindings[i]; binding.binding = rhiBinding.binding; binding.descriptorCount = rhiBinding.descriptorCount; binding.descriptorType = cast(rhiBinding.descriptorType); @@ -32,10 +35,10 @@ void Seele::VulkanDescriptorLayout::create() init::DescriptorSetLayoutCreateInfo(bindings.data(), bindings.size()); VK_CHECK(vkCreateDescriptorSetLayout(graphics->getDevice(), &createInfo, nullptr, &layoutHandle)); - allocator = new VulkanDescriptorAllocator(graphics, *this); + allocator = new DescriptorAllocator(graphics, *this); } -Seele::VulkanPipelineLayout::~VulkanPipelineLayout() +PipelineLayout::~PipelineLayout() { if (layoutHandle != VK_NULL_HANDLE) { @@ -43,12 +46,12 @@ Seele::VulkanPipelineLayout::~VulkanPipelineLayout() } } -void Seele::VulkanPipelineLayout::create() +void PipelineLayout::create() { vulkanDescriptorLayouts.resize(descriptorSetLayouts.size()); for (size_t i = 0; i < descriptorSetLayouts.size(); ++i) { - PVulkanDescriptorLayout layout = descriptorSetLayouts[i].cast(); + PDescriptorLayout layout = descriptorSetLayouts[i].cast(); layout->create(); vulkanDescriptorLayouts[i] = layout->getHandle(); } @@ -68,13 +71,13 @@ void Seele::VulkanPipelineLayout::create() layoutHash = memCrc32(&createInfo, sizeof(VkPipelineLayoutCreateInfo), 0); } -Seele::VulkanDescriptorSet::~VulkanDescriptorSet() +DescriptorSet::~DescriptorSet() { } -void Seele::VulkanDescriptorSet::updateBuffer(uint32_t binding, PUniformBuffer uniformBuffer) +void DescriptorSet::updateBuffer(uint32_t binding, Gfx::PUniformBuffer uniformBuffer) { - PVulkanUniformBuffer vulkanBuffer = uniformBuffer.cast(); + PUniformBuffer vulkanBuffer = uniformBuffer.cast(); // VkDescriptorBufferInfo bufferInfo = init::DescriptorBufferInfo(vulkanBuffer->getHandle(), vulkanBuffer->getOffset(), vulkanBuffer->getSize()); // bufferInfos.add(bufferInfo); @@ -82,9 +85,9 @@ void Seele::VulkanDescriptorSet::updateBuffer(uint32_t binding, PUniformBuffer u writeDescriptors.add(writeDescriptor); } -void Seele::VulkanDescriptorSet::updateBuffer(uint32_t binding, PStructuredBuffer uniformBuffer) +void DescriptorSet::updateBuffer(uint32_t binding, Gfx::PStructuredBuffer uniformBuffer) { - PVulkanStructuredBuffer vulkanBuffer = uniformBuffer.cast(); + PStructuredBuffer vulkanBuffer = uniformBuffer.cast(); // VkDescriptorBufferInfo bufferInfo = init::DescriptorBufferInfo(vulkanBuffer->getHandle(), vulkanBuffer->getOffset(), vulkanBuffer->getSize()); // bufferInfos.add(bufferInfo); @@ -92,9 +95,9 @@ void Seele::VulkanDescriptorSet::updateBuffer(uint32_t binding, PStructuredBuffe writeDescriptors.add(writeDescriptor); } -void Seele::VulkanDescriptorSet::updateSampler(uint32_t binding, PSamplerState samplerState) +void DescriptorSet::updateSampler(uint32_t binding, Gfx::PSamplerState samplerState) { - PVulkanSamplerState vulkanSampler = samplerState.cast(); + PSamplerState vulkanSampler = samplerState.cast(); VkDescriptorImageInfo imageInfo = init::DescriptorImageInfo( vulkanSampler->sampler, @@ -106,7 +109,7 @@ void Seele::VulkanDescriptorSet::updateSampler(uint32_t binding, PSamplerState s writeDescriptors.add(writeDescriptor); } -void Seele::VulkanDescriptorSet::updateTexture(uint32_t binding, PTexture texture, PSamplerState samplerState) +void DescriptorSet::updateTexture(uint32_t binding, Gfx::PTexture texture, Gfx::PSamplerState samplerState) { // VulkanTextureBase* vulkanTexture = VulkanTextureBase::cast(texture); //It is assumed that the image is in the correct layout @@ -129,13 +132,13 @@ void Seele::VulkanDescriptorSet::updateTexture(uint32_t binding, PTexture textur writeDescriptors.add(writeDescriptor); } -bool Seele::VulkanDescriptorSet::operator<(PDescriptorSet other) +bool DescriptorSet::operator<(Gfx::PDescriptorSet other) { - PVulkanDescriptorSet otherSet = other.cast(); + PDescriptorSet otherSet = other.cast(); return setHandle < otherSet->setHandle; } -void Seele::VulkanDescriptorSet::writeChanges() +void DescriptorSet::writeChanges() { if (writeDescriptors.size() > 0) { @@ -146,7 +149,7 @@ void Seele::VulkanDescriptorSet::writeChanges() } } -Seele::VulkanDescriptorAllocator::VulkanDescriptorAllocator(PVulkanGraphics graphics, VulkanDescriptorLayout& layout) +DescriptorAllocator::DescriptorAllocator(PGraphics graphics, DescriptorLayout& layout) : layout(layout) , graphics(graphics) { @@ -173,15 +176,15 @@ Seele::VulkanDescriptorAllocator::VulkanDescriptorAllocator(PVulkanGraphics grap VK_CHECK(vkCreateDescriptorPool(graphics->getDevice(), &createInfo, nullptr, &poolHandle)); } -Seele::VulkanDescriptorAllocator::~VulkanDescriptorAllocator() +DescriptorAllocator::~DescriptorAllocator() { vkDestroyDescriptorPool(graphics->getDevice(), poolHandle, nullptr); } -void Seele::VulkanDescriptorAllocator::allocateDescriptorSet(PDescriptorSet& descriptorSet) +void DescriptorAllocator::allocateDescriptorSet(Gfx::PDescriptorSet& descriptorSet) { - descriptorSet = new VulkanDescriptorSet(graphics, this); - PVulkanDescriptorSet vulkanSet = descriptorSet.cast(); + descriptorSet = new DescriptorSet(graphics, this); + PDescriptorSet vulkanSet = descriptorSet.cast(); VkDescriptorSetLayout layoutHandle = layout.getHandle(); VkDescriptorSetAllocateInfo allocInfo = init::DescriptorSetAllocateInfo(poolHandle, &layoutHandle, 1); diff --git a/src/Engine/Graphics/Vulkan/VulkanGraphics.cpp b/src/Engine/Graphics/Vulkan/VulkanGraphics.cpp index 6c36004..766a1da 100644 --- a/src/Engine/Graphics/Vulkan/VulkanGraphics.cpp +++ b/src/Engine/Graphics/Vulkan/VulkanGraphics.cpp @@ -4,8 +4,9 @@ #include "VulkanInitializer.h" #include +using namespace Seele::Vulkan; -Seele::VulkanGraphics::VulkanGraphics() +Graphics::Graphics() : callback(VK_NULL_HANDLE) , handle(VK_NULL_HANDLE) , instance(VK_NULL_HANDLE) @@ -15,12 +16,12 @@ Seele::VulkanGraphics::VulkanGraphics() glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); } -Seele::VulkanGraphics::~VulkanGraphics() +Graphics::~Graphics() { glfwTerminate(); } -void Seele::VulkanGraphics::init(GraphicsInitializer initInfo) +void Graphics::init(GraphicsInitializer initInfo) { initInstance(initInfo); setupDebugCallback(); @@ -28,34 +29,34 @@ void Seele::VulkanGraphics::init(GraphicsInitializer initInfo) allocator = new VulkanAllocator(this); } -void Seele::VulkanGraphics::beginFrame(void* windowHandle) +void Graphics::beginFrame(void* windowHandle) { GLFWwindow* window = static_cast(windowHandle); glfwPollEvents(); } -void Seele::VulkanGraphics::endFrame(void* windowHandle) +void Graphics::endFrame(void* windowHandle) { GLFWwindow* window = static_cast(windowHandle); } -void* Seele::VulkanGraphics::createWindow(const WindowCreateInfo& createInfo) +void* Graphics::createWindow(const WindowCreateInfo& createInfo) { GLFWwindow* window = glfwCreateWindow(createInfo.width, createInfo.height, createInfo.title, createInfo.bFullscreen ? glfwGetPrimaryMonitor() : nullptr, nullptr); return window; } -VkDevice Seele::VulkanGraphics::getDevice() const +VkDevice Graphics::getDevice() const { return handle; } -VkPhysicalDevice Seele::VulkanGraphics::getPhysicalDevice() const +VkPhysicalDevice Graphics::getPhysicalDevice() const { return physicalDevice; } -Seele::Array Seele::VulkanGraphics::getRequiredExtensions() +Array Graphics::getRequiredExtensions() { Array extensions; @@ -70,7 +71,7 @@ Seele::Array Seele::VulkanGraphics::getRequiredExtensions() #endif // ENABLE_VALIDATION return extensions; } -void Seele::VulkanGraphics::initInstance(GraphicsInitializer initInfo) +void Graphics::initInstance(GraphicsInitializer initInfo) { VkApplicationInfo appInfo = {}; appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; @@ -98,7 +99,7 @@ void Seele::VulkanGraphics::initInstance(GraphicsInitializer initInfo) #endif VK_CHECK(vkCreateInstance(&info, nullptr, &instance)); } -void Seele::VulkanGraphics::setupDebugCallback() +void Graphics::setupDebugCallback() { VkDebugReportCallbackCreateInfoEXT createInfo = init::DebugReportCallbackCreateInfo( @@ -107,7 +108,7 @@ void Seele::VulkanGraphics::setupDebugCallback() VK_CHECK(CreateDebugReportCallbackEXT(instance, &createInfo, nullptr, &callback)); } -void Seele::VulkanGraphics::pickPhysicalDevice() +void Graphics::pickPhysicalDevice() { uint32 physicalDeviceCount; vkEnumeratePhysicalDevices(instance, &physicalDeviceCount, nullptr); @@ -137,7 +138,7 @@ void Seele::VulkanGraphics::pickPhysicalDevice() this->physicalDevice = bestDevice; } -void Seele::VulkanGraphics::createDevice() +void Graphics::createDevice() { } diff --git a/src/Engine/Graphics/Vulkan/VulkanGraphics.h b/src/Engine/Graphics/Vulkan/VulkanGraphics.h index 0f7224f..ac76ff8 100644 --- a/src/Engine/Graphics/Vulkan/VulkanGraphics.h +++ b/src/Engine/Graphics/Vulkan/VulkanGraphics.h @@ -3,34 +3,37 @@ namespace Seele { - DECLARE_REF(VulkanAllocator); - class VulkanGraphics : public Graphics + namespace Vulkan { - public: - VulkanGraphics(); - virtual ~VulkanGraphics(); - VkDevice getDevice() const; - VkPhysicalDevice getPhysicalDevice() const; + DECLARE_REF(Allocator); + class Graphics : public Gfx::Graphics + { + public: + Graphics(); + virtual ~Graphics(); + VkDevice getDevice() const; + VkPhysicalDevice getPhysicalDevice() const; - // Inherited via Graphics - virtual void init(GraphicsInitializer initializer) override; - virtual void beginFrame(void* windowHandle) override; - virtual void endFrame(void* windowHandle) override; - virtual void* createWindow(const WindowCreateInfo& createInfo) override; - protected: - Array getRequiredExtensions(); - void initInstance(GraphicsInitializer initInfo); - void setupDebugCallback(); - void pickPhysicalDevice(); - void createDevice(); + // Inherited via Graphics + virtual void init(GraphicsInitializer initializer) override; + virtual void beginFrame(void* windowHandle) override; + virtual void endFrame(void* windowHandle) override; + virtual void* createWindow(const WindowCreateInfo& createInfo) override; + protected: + Array getRequiredExtensions(); + void initInstance(GraphicsInitializer initInfo); + void setupDebugCallback(); + void pickPhysicalDevice(); + void createDevice(); - VkDevice handle; - VkPhysicalDevice physicalDevice; - VkInstance instance; - VkDebugReportCallbackEXT callback; - Array viewports; - PVulkanAllocator allocator; - friend class Window; - }; - DEFINE_REF(VulkanGraphics); + VkDevice handle; + VkPhysicalDevice physicalDevice; + VkInstance instance; + VkDebugReportCallbackEXT callback; + Array viewports; + PAllocator allocator; + friend class Window; + }; + DEFINE_REF(Graphics); + } } \ No newline at end of file diff --git a/src/Engine/Graphics/Vulkan/VulkanGraphicsEnums.cpp b/src/Engine/Graphics/Vulkan/VulkanGraphicsEnums.cpp index c1b702e..b72d512 100644 --- a/src/Engine/Graphics/Vulkan/VulkanGraphicsEnums.cpp +++ b/src/Engine/Graphics/Vulkan/VulkanGraphicsEnums.cpp @@ -1,8 +1,9 @@ #include "VulkanGraphicsEnums.h" -using namespace Seele; +using namespace Seele::Vulkan; +using namespace Seele::Gfx; -VkDescriptorType Seele::cast(const SeDescriptorType& descriptorType) +VkDescriptorType cast(const Seele::Gfx::SeDescriptorType& descriptorType) { switch (descriptorType) { @@ -40,7 +41,7 @@ VkDescriptorType Seele::cast(const SeDescriptorType& descriptorType) return VK_DESCRIPTOR_TYPE_MAX_ENUM; } -SeDescriptorType Seele::cast(const VkDescriptorType& descriptorType) +Seele::Gfx::SeDescriptorType cast(const VkDescriptorType& descriptorType) { switch (descriptorType) { @@ -79,7 +80,7 @@ SeDescriptorType Seele::cast(const VkDescriptorType& descriptorType) return SE_DESCRIPTOR_TYPE_MAX_ENUM; } -VkShaderStageFlagBits Seele::cast(const SeShaderStageFlagBits& stage) +VkShaderStageFlagBits cast(const Seele::Gfx::SeShaderStageFlagBits& stage) { switch (stage) { @@ -124,7 +125,7 @@ VkShaderStageFlagBits Seele::cast(const SeShaderStageFlagBits& stage) return VK_SHADER_STAGE_ALL; } -SeShaderStageFlagBits Seele::cast(const VkShaderStageFlagBits& stage) +Seele::Gfx::SeShaderStageFlagBits cast(const VkShaderStageFlagBits& stage) { switch (stage) { diff --git a/src/Engine/Graphics/Vulkan/VulkanGraphicsEnums.h b/src/Engine/Graphics/Vulkan/VulkanGraphicsEnums.h index e0adcb9..1cc62ad 100644 --- a/src/Engine/Graphics/Vulkan/VulkanGraphicsEnums.h +++ b/src/Engine/Graphics/Vulkan/VulkanGraphicsEnums.h @@ -14,8 +14,11 @@ namespace Seele { - VkDescriptorType cast(const SeDescriptorType& descriptorType); - SeDescriptorType cast(const VkDescriptorType& descriptorType); - VkShaderStageFlagBits cast(const SeShaderStageFlagBits& stage); - SeShaderStageFlagBits cast(const VkShaderStageFlagBits& stage); + namespace Vulkan + { + VkDescriptorType cast(const Gfx::SeDescriptorType& descriptorType); + Gfx::SeDescriptorType cast(const VkDescriptorType& descriptorType); + VkShaderStageFlagBits cast(const Gfx::SeShaderStageFlagBits& stage); + Gfx::SeShaderStageFlagBits cast(const VkShaderStageFlagBits& stage); + } } \ No newline at end of file diff --git a/src/Engine/Graphics/Vulkan/VulkanGraphicsResources.h b/src/Engine/Graphics/Vulkan/VulkanGraphicsResources.h index 74936a6..1882418 100644 --- a/src/Engine/Graphics/Vulkan/VulkanGraphicsResources.h +++ b/src/Engine/Graphics/Vulkan/VulkanGraphicsResources.h @@ -4,152 +4,189 @@ namespace Seele { - DECLARE_REF(VulkanDescriptorAllocator); - DECLARE_REF(VulkanGraphics); - class VulkanDescriptorLayout : public DescriptorLayout + namespace Vulkan { - public: - VulkanDescriptorLayout(PVulkanGraphics graphics) - : graphics(graphics) - , layoutHandle(VK_NULL_HANDLE) - {} - virtual ~VulkanDescriptorLayout(); - virtual void create(); - inline VkDescriptorSetLayout getHandle() const + DECLARE_REF(DescriptorAllocator); + DECLARE_REF(Graphics); + class DescriptorLayout : public Gfx::DescriptorLayout { - return layoutHandle; - } - private: - PVulkanGraphics graphics; - Array bindings; - VkDescriptorSetLayout layoutHandle; - friend class VulkanPipelineStateCacheManager; - }; - DEFINE_REF(VulkanDescriptorLayout); - class VulkanPipelineLayout : public PipelineLayout - { - public: - VulkanPipelineLayout(PVulkanGraphics graphics) - : graphics(graphics) - , layoutHash(0) - , layoutHandle(VK_NULL_HANDLE) - {} - virtual ~VulkanPipelineLayout(); - virtual void create(); - inline VkPipelineLayout getHandle() const + public: + DescriptorLayout(PGraphics graphics) + : graphics(graphics) + , layoutHandle(VK_NULL_HANDLE) + {} + virtual ~DescriptorLayout(); + virtual void create(); + inline VkDescriptorSetLayout getHandle() const + { + return layoutHandle; + } + private: + PGraphics graphics; + Array bindings; + VkDescriptorSetLayout layoutHandle; + friend class PipelineStateCacheManager; + }; + DEFINE_REF(DescriptorLayout); + class PipelineLayout : public Gfx::PipelineLayout { - return layoutHandle; - } - virtual uint32 getHash() const + public: + PipelineLayout(PGraphics graphics) + : graphics(graphics) + , layoutHash(0) + , layoutHandle(VK_NULL_HANDLE) + {} + virtual ~PipelineLayout(); + virtual void create(); + inline VkPipelineLayout getHandle() const + { + return layoutHandle; + } + virtual uint32 getHash() const + { + return layoutHash; + } + private: + Array vulkanDescriptorLayouts; + uint32 layoutHash; + VkPipelineLayout layoutHandle; + PGraphics graphics; + friend class PipelineStateCacheManager; + }; + DEFINE_REF(PipelineLayout); + + class DescriptorSet : public Gfx::DescriptorSet { - return layoutHash; - } - private: - Array vulkanDescriptorLayouts; - uint32 layoutHash; - VkPipelineLayout layoutHandle; - PVulkanGraphics graphics; - friend class VulkanPipelineStateCacheManager; - }; - DEFINE_REF(VulkanPipelineLayout); + public: + DescriptorSet(PGraphics graphics, PDescriptorAllocator owner) + : graphics(graphics) + , owner(owner) + , setHandle(VK_NULL_HANDLE) + {} + virtual ~DescriptorSet(); + virtual void updateBuffer(uint32_t binding, Gfx::PUniformBuffer uniformBuffer); + virtual void updateBuffer(uint32_t binding, Gfx::PStructuredBuffer uniformBuffer); + virtual void updateSampler(uint32_t binding, Gfx::PSamplerState samplerState); + virtual void updateTexture(uint32_t binding, Gfx::PTexture texture, Gfx::PSamplerState sampler = nullptr); + virtual bool operator<(Gfx::PDescriptorSet other); + inline VkDescriptorSet getHandle() const + { + return setHandle; + } + private: + virtual void writeChanges(); + Array imageInfos; + Array bufferInfos; + Array writeDescriptors; + VkDescriptorSet setHandle; + PDescriptorAllocator owner; + PGraphics graphics; + friend class DescriptorAllocator; + }; + DEFINE_REF(DescriptorSet); - class VulkanDescriptorSet : public DescriptorSet - { - public: - VulkanDescriptorSet(PVulkanGraphics graphics, PVulkanDescriptorAllocator owner) - : graphics(graphics) - , owner(owner) - , setHandle(VK_NULL_HANDLE) - {} - virtual ~VulkanDescriptorSet(); - virtual void updateBuffer(uint32_t binding, PUniformBuffer uniformBuffer); - virtual void updateBuffer(uint32_t binding, PStructuredBuffer uniformBuffer); - virtual void updateSampler(uint32_t binding, PSamplerState samplerState); - virtual void updateTexture(uint32_t binding, PTexture texture, PSamplerState sampler = nullptr); - virtual bool operator<(PDescriptorSet other); - inline VkDescriptorSet getHandle() const + class DescriptorAllocator : public Gfx::DescriptorAllocator { - return setHandle; - } - private: - virtual void writeChanges(); - Array imageInfos; - Array bufferInfos; - Array writeDescriptors; - VkDescriptorSet setHandle; - PVulkanDescriptorAllocator owner; - PVulkanGraphics graphics; - friend class VulkanDescriptorAllocator; - }; - DEFINE_REF(VulkanDescriptorSet); + public: + DescriptorAllocator(PGraphics graphics, DescriptorLayout& layout); + ~DescriptorAllocator(); + virtual void allocateDescriptorSet(Gfx::PDescriptorSet& descriptorSet); - class VulkanDescriptorAllocator : public DescriptorAllocator - { - public: - VulkanDescriptorAllocator(PVulkanGraphics graphics, VulkanDescriptorLayout& layout); - ~VulkanDescriptorAllocator(); - virtual void allocateDescriptorSet(PDescriptorSet& descriptorSet); - - inline VkDescriptorPool getHandle() + inline VkDescriptorPool getHandle() + { + return poolHandle; + } + private: + PGraphics graphics; + int maxSets = 512; + VkDescriptorPool poolHandle; + DescriptorLayout& layout; + }; + DEFINE_REF(DescriptorAllocator); + enum class QueueType { - return poolHandle; - } - private: - PVulkanGraphics graphics; - int maxSets = 512; - VkDescriptorPool poolHandle; - VulkanDescriptorLayout& layout; - }; - DEFINE_REF(VulkanDescriptorAllocator); + GRAPHICS = 1, + COMPUTE = 2, + TRANSFER = 3 + }; + class QueueOwnedResource + { + public: + QueueOwnedResource(PGraphics graphics, QueueType startQueueType); + ~QueueOwnedResource(); + CommandBufferManager* getCommands(); + //Preliminary checks to see if the barrier should be executed at all + void transferOwnership(QueueType newOwner); + protected: + virtual void executeOwnershipBarrier(QueueType newOwner) = 0; + QueueType currentOwner; + PGraphics graphics; + CommandBufferManager* cachedCmdBufferManager; + }; + DEFINE_REF(QueueOwnedResource); - class VulkanUniformBuffer : public UniformBuffer - { + class Buffer : public QueueOwnedResource + { + public: + Buffer(PGraphics graphics, uint32 size, VkBufferUsageFlags usage); + virtual ~Buffer(); + private: + virtual VkAccessFlags getSourceAccessMask() = 0; + virtual VkAccessFlags getDestAccessMask() = 0; + // Inherited via QueueOwnedResource + virtual void executeOwnershipBarrier(QueueType newOwner); + }; + DEFINE_REF(Buffer); - }; - DEFINE_REF(VulkanUniformBuffer); + class UniformBuffer : public Gfx::UniformBuffer + { - class VulkanStructuredBuffer : public StructuredBuffer - { + }; + DEFINE_REF(UniformBuffer); - }; - DEFINE_REF(VulkanStructuredBuffer); + class StructuredBuffer : public Gfx::StructuredBuffer + { - class VulkanTextureBase - { - private: - uint32 sizeX; - uint32 sizeY; - uint32 sizeZ; - uint32 arrayCount; - uint32 layerCount; - }; - DEFINE_REF(VulkanTextureBase); + }; + DEFINE_REF(StructuredBuffer); - class VulkanTexture2D : public Texture2D - { - public: - private: - PVulkanTextureBase textureHandle; - }; - DEFINE_REF(VulkanTexture2D); + class TextureBase + { + private: + uint32 sizeX; + uint32 sizeY; + uint32 sizeZ; + uint32 arrayCount; + uint32 layerCount; + }; + DEFINE_REF(TextureBase); - class VulkanSamplerState - { - public: - VkSampler sampler; - }; - DEFINE_REF(VulkanSamplerState); + class Texture2D : public Gfx::Texture2D + { + public: + private: + PTextureBase textureHandle; + }; + DEFINE_REF(Texture2D); - class VulkanViewport : public Viewport - { - public: - private: - uint32 sizeX; - uint32 sizeY; - uint32 offsetX; - uint32 offsetY; - VkSwapchainKHR swapchain; - void* windowHandle; - }; - DECLARE_REF(VulkanViewport); + class SamplerState + { + public: + VkSampler sampler; + }; + DEFINE_REF(SamplerState); + + class Viewport : public Gfx::Viewport + { + public: + private: + uint32 sizeX; + uint32 sizeY; + uint32 offsetX; + uint32 offsetY; + VkSwapchainKHR swapchain; + void* windowHandle; + }; + DECLARE_REF(Viewport); + } } \ No newline at end of file diff --git a/src/Engine/Graphics/Vulkan/VulkanInitializer.cpp b/src/Engine/Graphics/Vulkan/VulkanInitializer.cpp index 3c15750..5c3c7c2 100644 --- a/src/Engine/Graphics/Vulkan/VulkanInitializer.cpp +++ b/src/Engine/Graphics/Vulkan/VulkanInitializer.cpp @@ -1,6 +1,8 @@ #include "VulkanInitializer.h" -VkApplicationInfo Seele::init::ApplicationInfo(const char* appName, uint32_t appVersion, const char* engineName, uint32_t engineVersion, uint32_t apiVersion) +using namespace Seele::Vulkan; + +VkApplicationInfo init::ApplicationInfo(const char* appName, uint32_t appVersion, const char* engineName, uint32_t engineVersion, uint32_t apiVersion) { VkApplicationInfo info = {}; info.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; @@ -11,7 +13,7 @@ VkApplicationInfo Seele::init::ApplicationInfo(const char* appName, uint32_t app return info; } -VkInstanceCreateInfo Seele::init::InstanceCreateInfo(VkApplicationInfo* appInfo, const Array& extensions, const Array& layers) +VkInstanceCreateInfo init::InstanceCreateInfo(VkApplicationInfo* appInfo, const Array& extensions, const Array& layers) { VkInstanceCreateInfo info = {}; info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; @@ -23,7 +25,7 @@ VkInstanceCreateInfo Seele::init::InstanceCreateInfo(VkApplicationInfo* appInfo, return info; } -VkDebugReportCallbackCreateInfoEXT Seele::init::DebugReportCallbackCreateInfo(VkDebugReportFlagsEXT flags) +VkDebugReportCallbackCreateInfoEXT init::DebugReportCallbackCreateInfo(VkDebugReportFlagsEXT flags) { VkDebugReportCallbackCreateInfoEXT createInfo = {}; createInfo.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; @@ -32,13 +34,13 @@ VkDebugReportCallbackCreateInfoEXT Seele::init::DebugReportCallbackCreateInfo(Vk return createInfo; } -VkDeviceQueueCreateInfo Seele::init::DeviceQueueCreateInfo(int queueFamilyIndex, int queueCount) +VkDeviceQueueCreateInfo init::DeviceQueueCreateInfo(int queueFamilyIndex, int queueCount) { float priority = 1.0f; return DeviceQueueCreateInfo(queueFamilyIndex, queueCount, &priority); } -VkDeviceQueueCreateInfo Seele::init::DeviceQueueCreateInfo(int queueFamilyIndex, int queueCount, float* queuePriority) +VkDeviceQueueCreateInfo init::DeviceQueueCreateInfo(int queueFamilyIndex, int queueCount, float* queuePriority) { VkDeviceQueueCreateInfo createInfo = {}; createInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; @@ -48,12 +50,12 @@ VkDeviceQueueCreateInfo Seele::init::DeviceQueueCreateInfo(int queueFamilyIndex, return createInfo; } -VkDeviceCreateInfo Seele::init::DeviceCreateInfo(VkDeviceQueueCreateInfo* queueInfos, uint32_t queueCount, VkPhysicalDeviceFeatures* features) +VkDeviceCreateInfo init::DeviceCreateInfo(VkDeviceQueueCreateInfo* queueInfos, uint32_t queueCount, VkPhysicalDeviceFeatures* features) { return DeviceCreateInfo(queueInfos, queueCount, features, nullptr, 0, nullptr, 0); } -VkSwapchainCreateInfoKHR Seele::init::SwapchainCreateInfo(VkSurfaceKHR surface, uint32_t minImageCount, VkFormat imageFormat, VkColorSpaceKHR colorSpace, VkExtent2D extent, uint32_t arrayLayers, VkImageUsageFlags usage, VkSurfaceTransformFlagBitsKHR Transform, VkCompositeAlphaFlagBitsKHR alpha, VkPresentModeKHR presentMode, VkBool32 clipped) +VkSwapchainCreateInfoKHR init::SwapchainCreateInfo(VkSurfaceKHR surface, uint32_t minImageCount, VkFormat imageFormat, VkColorSpaceKHR colorSpace, VkExtent2D extent, uint32_t arrayLayers, VkImageUsageFlags usage, VkSurfaceTransformFlagBitsKHR Transform, VkCompositeAlphaFlagBitsKHR alpha, VkPresentModeKHR presentMode, VkBool32 clipped) { VkSwapchainCreateInfoKHR createInfo = {}; createInfo.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR; @@ -71,7 +73,7 @@ VkSwapchainCreateInfoKHR Seele::init::SwapchainCreateInfo(VkSurfaceKHR surface, return createInfo; } -VkSwapchainCreateInfoKHR Seele::init::SwapchainCreateInfo(VkSurfaceKHR surface, uint32_t minImageCount, VkFormat imageFormat, VkColorSpaceKHR colorSpace, uint32_t width, uint32_t height, uint32_t arrayLayers, VkImageUsageFlags usage, VkSurfaceTransformFlagBitsKHR Transform, VkCompositeAlphaFlagBitsKHR alpha, VkPresentModeKHR presentMode, VkBool32 clipped) +VkSwapchainCreateInfoKHR init::SwapchainCreateInfo(VkSurfaceKHR surface, uint32_t minImageCount, VkFormat imageFormat, VkColorSpaceKHR colorSpace, uint32_t width, uint32_t height, uint32_t arrayLayers, VkImageUsageFlags usage, VkSurfaceTransformFlagBitsKHR Transform, VkCompositeAlphaFlagBitsKHR alpha, VkPresentModeKHR presentMode, VkBool32 clipped) { VkSwapchainCreateInfoKHR createInfo = {}; createInfo.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR; @@ -90,7 +92,7 @@ VkSwapchainCreateInfoKHR Seele::init::SwapchainCreateInfo(VkSurfaceKHR surface, return createInfo; } -VkFramebufferCreateInfo Seele::init::FramebufferCreateInfo(VkRenderPass renderPass, uint32_t attachmentCount, VkImageView* attachments, uint32_t width, uint32_t height, uint32_t layers) +VkFramebufferCreateInfo init::FramebufferCreateInfo(VkRenderPass renderPass, uint32_t attachmentCount, VkImageView* attachments, uint32_t width, uint32_t height, uint32_t layers) { VkFramebufferCreateInfo frameBufferCreateInfo = {}; frameBufferCreateInfo.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; @@ -104,7 +106,7 @@ VkFramebufferCreateInfo Seele::init::FramebufferCreateInfo(VkRenderPass renderPa return frameBufferCreateInfo; } -VkAttachmentDescription Seele::init::AttachmentDescription(VkFormat format, VkSampleCountFlagBits sample, VkAttachmentLoadOp loadOp, VkAttachmentStoreOp storeOp, VkAttachmentLoadOp stencilLoadOp, VkAttachmentStoreOp stencilStoreOp, VkImageLayout imageLayout, VkImageLayout finalLayout) +VkAttachmentDescription init::AttachmentDescription(VkFormat format, VkSampleCountFlagBits sample, VkAttachmentLoadOp loadOp, VkAttachmentStoreOp storeOp, VkAttachmentLoadOp stencilLoadOp, VkAttachmentStoreOp stencilStoreOp, VkImageLayout imageLayout, VkImageLayout finalLayout) { VkAttachmentDescription desc = {}; desc.format = format; @@ -118,7 +120,7 @@ VkAttachmentDescription Seele::init::AttachmentDescription(VkFormat format, VkSa return desc; } -VkSubpassDescription Seele::init::SubpassDescription(VkPipelineBindPoint bindPoint, uint32_t colorAttachmentCount, VkAttachmentReference* colorReference, uint32_t depthAttachmentCount, VkAttachmentReference* depthReference, uint32_t inputAttachmentCount, VkAttachmentReference* inputReference, uint32_t resolveAttachmentCount, VkAttachmentReference* resolveReference, uint32_t preserveAttachmentCount, VkAttachmentReference* preserveReference) +VkSubpassDescription init::SubpassDescription(VkPipelineBindPoint bindPoint, uint32_t colorAttachmentCount, VkAttachmentReference* colorReference, uint32_t depthAttachmentCount, VkAttachmentReference* depthReference, uint32_t inputAttachmentCount, VkAttachmentReference* inputReference, uint32_t resolveAttachmentCount, VkAttachmentReference* resolveReference, uint32_t preserveAttachmentCount, VkAttachmentReference* preserveReference) { VkSubpassDescription desc = {}; desc.pipelineBindPoint = bindPoint; @@ -127,7 +129,7 @@ VkSubpassDescription Seele::init::SubpassDescription(VkPipelineBindPoint bindPoi return desc; } -VkRenderPassCreateInfo Seele::init::RenderPassCreateInfo(uint32_t attachmentCount, const VkAttachmentDescription* attachments, uint32_t subpassCount, const VkSubpassDescription* subpasses, uint32_t dependencyCount, const VkSubpassDependency* subpassDependencies) +VkRenderPassCreateInfo init::RenderPassCreateInfo(uint32_t attachmentCount, const VkAttachmentDescription* attachments, uint32_t subpassCount, const VkSubpassDescription* subpasses, uint32_t dependencyCount, const VkSubpassDependency* subpassDependencies) { VkRenderPassCreateInfo info = {}; info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; @@ -140,7 +142,7 @@ VkRenderPassCreateInfo Seele::init::RenderPassCreateInfo(uint32_t attachmentCoun return info; } -VkDeviceCreateInfo Seele::init::DeviceCreateInfo(VkDeviceQueueCreateInfo* queueInfos, uint32_t queueCount, VkPhysicalDeviceFeatures* features, const char* const* deviceExtensions, uint32_t deviceExtensionCount, const char* const* layers, uint32_t layerCount) +VkDeviceCreateInfo init::DeviceCreateInfo(VkDeviceQueueCreateInfo* queueInfos, uint32_t queueCount, VkPhysicalDeviceFeatures* features, const char* const* deviceExtensions, uint32_t deviceExtensionCount, const char* const* layers, uint32_t layerCount) { VkDeviceCreateInfo createInfo = {}; createInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; @@ -162,7 +164,7 @@ VkDeviceCreateInfo Seele::init::DeviceCreateInfo(VkDeviceQueueCreateInfo* queueI return createInfo; } -VkMemoryAllocateInfo Seele::init::MemoryAllocateInfo() +VkMemoryAllocateInfo init::MemoryAllocateInfo() { VkMemoryAllocateInfo memAllocInfo = {}; memAllocInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; @@ -170,7 +172,7 @@ VkMemoryAllocateInfo Seele::init::MemoryAllocateInfo() return memAllocInfo; } -VkCommandBufferAllocateInfo Seele::init::CommandBufferAllocateInfo(VkCommandPool commandPool, VkCommandBufferLevel level, uint32_t bufferCount) +VkCommandBufferAllocateInfo init::CommandBufferAllocateInfo(VkCommandPool commandPool, VkCommandBufferLevel level, uint32_t bufferCount) { VkCommandBufferAllocateInfo commandBufferAllocateInfo = {}; commandBufferAllocateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; @@ -180,14 +182,14 @@ VkCommandBufferAllocateInfo Seele::init::CommandBufferAllocateInfo(VkCommandPool return commandBufferAllocateInfo; } -VkCommandPoolCreateInfo Seele::init::CommandPoolCreateInfo() +VkCommandPoolCreateInfo init::CommandPoolCreateInfo() { VkCommandPoolCreateInfo cmdPoolCreateInfo = {}; cmdPoolCreateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; return cmdPoolCreateInfo; } -VkCommandBufferBeginInfo Seele::init::CommandBufferBeginInfo() +VkCommandBufferBeginInfo init::CommandBufferBeginInfo() { VkCommandBufferBeginInfo cmdBufferBeginInfo = {}; cmdBufferBeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; @@ -195,14 +197,14 @@ VkCommandBufferBeginInfo Seele::init::CommandBufferBeginInfo() return cmdBufferBeginInfo; } -VkCommandBufferInheritanceInfo Seele::init::CommandBufferInheritanceInfo() +VkCommandBufferInheritanceInfo init::CommandBufferInheritanceInfo() { VkCommandBufferInheritanceInfo cmdBufferInheritanceInfo = {}; cmdBufferInheritanceInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO; return cmdBufferInheritanceInfo; } -VkRenderPassBeginInfo Seele::init::RenderPassBeginInfo() +VkRenderPassBeginInfo init::RenderPassBeginInfo() { VkRenderPassBeginInfo renderPassBeginInfo = {}; renderPassBeginInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; @@ -210,7 +212,7 @@ VkRenderPassBeginInfo Seele::init::RenderPassBeginInfo() return renderPassBeginInfo; } -VkRenderPassCreateInfo Seele::init::RenderPassCreateInfo() +VkRenderPassCreateInfo init::RenderPassCreateInfo() { VkRenderPassCreateInfo renderPassCreateInfo = {}; renderPassCreateInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; @@ -218,7 +220,7 @@ VkRenderPassCreateInfo Seele::init::RenderPassCreateInfo() return renderPassCreateInfo; } -VkImageMemoryBarrier Seele::init::ImageMemoryBarrier(VkImage image, VkImageLayout oldLayout, VkImageLayout newLayout, uint32_t srcQueue, uint32_t dstQueue) +VkImageMemoryBarrier init::ImageMemoryBarrier(VkImage image, VkImageLayout oldLayout, VkImageLayout newLayout, uint32_t srcQueue, uint32_t dstQueue) { VkImageMemoryBarrier barrier = {}; barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; @@ -260,7 +262,7 @@ VkImageMemoryBarrier Seele::init::ImageMemoryBarrier(VkImage image, VkImageLayou return barrier; } -VkImageMemoryBarrier Seele::init::ImageMemoryBarrier() +VkImageMemoryBarrier init::ImageMemoryBarrier() { VkImageMemoryBarrier barrier = {}; barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; @@ -268,7 +270,7 @@ VkImageMemoryBarrier Seele::init::ImageMemoryBarrier() return barrier; } -VkBufferMemoryBarrier Seele::init::BufferMemoryBarrier() +VkBufferMemoryBarrier init::BufferMemoryBarrier() { VkBufferMemoryBarrier bufferMemoryBarrier = {}; bufferMemoryBarrier.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER; @@ -276,7 +278,7 @@ VkBufferMemoryBarrier Seele::init::BufferMemoryBarrier() return bufferMemoryBarrier; } -VkMemoryBarrier Seele::init::MemoryBarrier() +VkMemoryBarrier init::MemoryBarrier() { VkMemoryBarrier memoryBarrier = {}; memoryBarrier.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER; @@ -284,7 +286,7 @@ VkMemoryBarrier Seele::init::MemoryBarrier() return memoryBarrier; } -VkImageCreateInfo Seele::init::ImageCreateInfo() +VkImageCreateInfo init::ImageCreateInfo() { VkImageCreateInfo imageCreateInfo = {}; imageCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; @@ -292,7 +294,7 @@ VkImageCreateInfo Seele::init::ImageCreateInfo() return imageCreateInfo; } -VkSamplerCreateInfo Seele::init::SamplerCreateInfo() +VkSamplerCreateInfo init::SamplerCreateInfo() { VkSamplerCreateInfo samplerCreateInfo = {}; samplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; @@ -317,7 +319,7 @@ VkSamplerCreateInfo Seele::init::SamplerCreateInfo() return samplerCreateInfo; } -VkImageViewCreateInfo Seele::init::ImageViewCreateInfo() +VkImageViewCreateInfo init::ImageViewCreateInfo() { VkImageViewCreateInfo imageViewCreateInfo = {}; imageViewCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; @@ -325,7 +327,7 @@ VkImageViewCreateInfo Seele::init::ImageViewCreateInfo() return imageViewCreateInfo; } -VkSemaphoreCreateInfo Seele::init::SemaphoreCreateInfo() +VkSemaphoreCreateInfo init::SemaphoreCreateInfo() { VkSemaphoreCreateInfo semaphoreCreateInfo = {}; semaphoreCreateInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO; @@ -334,7 +336,7 @@ VkSemaphoreCreateInfo Seele::init::SemaphoreCreateInfo() return semaphoreCreateInfo; } -VkFenceCreateInfo Seele::init::FenceCreateInfo(VkFenceCreateFlags flags) +VkFenceCreateInfo init::FenceCreateInfo(VkFenceCreateFlags flags) { VkFenceCreateInfo fenceCreateInfo = {}; fenceCreateInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; @@ -342,14 +344,14 @@ VkFenceCreateInfo Seele::init::FenceCreateInfo(VkFenceCreateFlags flags) return fenceCreateInfo; } -VkEventCreateInfo Seele::init::EventCreateInfo() +VkEventCreateInfo init::EventCreateInfo() { VkEventCreateInfo eventCreateInfo = {}; eventCreateInfo.sType = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO; return eventCreateInfo; } -VkSubmitInfo Seele::init::SubmitInfo() +VkSubmitInfo init::SubmitInfo() { VkSubmitInfo submitInfo = {}; submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; @@ -357,7 +359,7 @@ VkSubmitInfo Seele::init::SubmitInfo() return submitInfo; } -VkImageSubresourceRange Seele::init::ImageSubresourceRange(VkImageAspectFlags aspect, uint32_t startMip) +VkImageSubresourceRange init::ImageSubresourceRange(VkImageAspectFlags aspect, uint32_t startMip) { VkImageSubresourceRange range; std::memset(&range, 0, sizeof(VkImageSubresourceRange)); @@ -369,7 +371,7 @@ VkImageSubresourceRange Seele::init::ImageSubresourceRange(VkImageAspectFlags as return range; } -VkViewport Seele::init::Viewport( +VkViewport init::Viewport( float width, float height, float minDepth, @@ -383,7 +385,7 @@ VkViewport Seele::init::Viewport( return viewport; } -VkRect2D Seele::init::Rect2D( +VkRect2D init::Rect2D( int32_t width, int32_t height, int32_t offsetX, @@ -397,14 +399,14 @@ VkRect2D Seele::init::Rect2D( return rect2D; } -VkBufferCreateInfo Seele::init::BufferCreateInfo() +VkBufferCreateInfo init::BufferCreateInfo() { VkBufferCreateInfo bufCreateInfo = {}; bufCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; return bufCreateInfo; } -VkBufferCreateInfo Seele::init::BufferCreateInfo( +VkBufferCreateInfo init::BufferCreateInfo( VkBufferUsageFlags usage, VkDeviceSize size) { @@ -417,7 +419,7 @@ VkBufferCreateInfo Seele::init::BufferCreateInfo( return bufCreateInfo; } -VkDescriptorPoolCreateInfo Seele::init::DescriptorPoolCreateInfo( +VkDescriptorPoolCreateInfo init::DescriptorPoolCreateInfo( uint32_t poolSizeCount, VkDescriptorPoolSize* pPoolSizes, uint32_t maxSets) @@ -431,7 +433,7 @@ VkDescriptorPoolCreateInfo Seele::init::DescriptorPoolCreateInfo( return descriptorPoolInfo; } -VkDescriptorPoolSize Seele::init::DescriptorPoolSize( +VkDescriptorPoolSize init::DescriptorPoolSize( VkDescriptorType type, uint32_t descriptorCount) { @@ -441,7 +443,7 @@ VkDescriptorPoolSize Seele::init::DescriptorPoolSize( return descriptorPoolSize; } -VkDescriptorSetLayoutBinding Seele::init::DescriptorSetLayoutBinding( +VkDescriptorSetLayoutBinding init::DescriptorSetLayoutBinding( VkDescriptorType type, VkShaderStageFlags stageFlags, uint32_t binding, @@ -455,7 +457,7 @@ VkDescriptorSetLayoutBinding Seele::init::DescriptorSetLayoutBinding( return setLayoutBinding; } -VkDescriptorSetLayoutCreateInfo Seele::init::DescriptorSetLayoutCreateInfo( +VkDescriptorSetLayoutCreateInfo init::DescriptorSetLayoutCreateInfo( const VkDescriptorSetLayoutBinding* pBindings, uint32_t bindingCount) { @@ -467,7 +469,7 @@ VkDescriptorSetLayoutCreateInfo Seele::init::DescriptorSetLayoutCreateInfo( return descriptorSetLayoutCreateInfo; } -VkPipelineLayoutCreateInfo Seele::init::PipelineLayoutCreateInfo( +VkPipelineLayoutCreateInfo init::PipelineLayoutCreateInfo( const VkDescriptorSetLayout* pSetLayouts, uint32_t setLayoutCount) { @@ -479,7 +481,7 @@ VkPipelineLayoutCreateInfo Seele::init::PipelineLayoutCreateInfo( return pipelineLayoutCreateInfo; } -VkDescriptorSetAllocateInfo Seele::init::DescriptorSetAllocateInfo( +VkDescriptorSetAllocateInfo init::DescriptorSetAllocateInfo( VkDescriptorPool descriptorPool, const VkDescriptorSetLayout* pSetLayouts, uint32_t descriptorSetCount) @@ -493,7 +495,7 @@ VkDescriptorSetAllocateInfo Seele::init::DescriptorSetAllocateInfo( return descriptorSetAllocateInfo; } -VkDescriptorBufferInfo Seele::init::DescriptorBufferInfo(VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range) +VkDescriptorBufferInfo init::DescriptorBufferInfo(VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range) { VkDescriptorBufferInfo bufferInfo = {}; bufferInfo.buffer = buffer; @@ -503,7 +505,7 @@ VkDescriptorBufferInfo Seele::init::DescriptorBufferInfo(VkBuffer buffer, VkDevi return bufferInfo; } -VkDescriptorImageInfo Seele::init::DescriptorImageInfo( +VkDescriptorImageInfo init::DescriptorImageInfo( VkSampler sampler, VkImageView imageView, VkImageLayout imageLayout) @@ -515,7 +517,7 @@ VkDescriptorImageInfo Seele::init::DescriptorImageInfo( return descriptorImageInfo; } -VkWriteDescriptorSet Seele::init::WriteDescriptorSet( +VkWriteDescriptorSet init::WriteDescriptorSet( VkDescriptorSet dstSet, VkDescriptorType type, uint32_t binding, @@ -533,7 +535,7 @@ VkWriteDescriptorSet Seele::init::WriteDescriptorSet( return writeDescriptorSet; } -VkWriteDescriptorSet Seele::init::WriteDescriptorSet( +VkWriteDescriptorSet init::WriteDescriptorSet( VkDescriptorSet dstSet, VkDescriptorType type, uint32_t binding, @@ -551,7 +553,7 @@ VkWriteDescriptorSet Seele::init::WriteDescriptorSet( return writeDescriptorSet; } -VkVertexInputBindingDescription Seele::init::VertexInputBindingDescription( +VkVertexInputBindingDescription init::VertexInputBindingDescription( uint32_t binding, uint32_t stride, VkVertexInputRate inputRate) @@ -563,7 +565,7 @@ VkVertexInputBindingDescription Seele::init::VertexInputBindingDescription( return vInputBindDescription; } -VkVertexInputAttributeDescription Seele::init::VertexInputAttributeDescription( +VkVertexInputAttributeDescription init::VertexInputAttributeDescription( uint32_t binding, uint32_t location, VkFormat format, @@ -577,7 +579,7 @@ VkVertexInputAttributeDescription Seele::init::VertexInputAttributeDescription( return vInputAttribDescription; } -VkPipelineVertexInputStateCreateInfo Seele::init::PipelineVertexInputStateCreateInfo() +VkPipelineVertexInputStateCreateInfo init::PipelineVertexInputStateCreateInfo() { VkPipelineVertexInputStateCreateInfo pipelineVertexInputStateCreateInfo = {}; pipelineVertexInputStateCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; @@ -585,7 +587,7 @@ VkPipelineVertexInputStateCreateInfo Seele::init::PipelineVertexInputStateCreate return pipelineVertexInputStateCreateInfo; } -VkPipelineInputAssemblyStateCreateInfo Seele::init::PipelineInputAssemblyStateCreateInfo( +VkPipelineInputAssemblyStateCreateInfo init::PipelineInputAssemblyStateCreateInfo( VkPrimitiveTopology topology, VkPipelineInputAssemblyStateCreateFlags flags, VkBool32 primitiveRestartEnable) @@ -598,7 +600,7 @@ VkPipelineInputAssemblyStateCreateInfo Seele::init::PipelineInputAssemblyStateCr return pipelineInputAssemblyStateCreateInfo; } -VkPipelineRasterizationStateCreateInfo Seele::init::PipelineRasterizationStateCreateInfo( +VkPipelineRasterizationStateCreateInfo init::PipelineRasterizationStateCreateInfo( VkPolygonMode polygonMode, VkCullModeFlags cullMode, VkFrontFace frontFace, @@ -615,7 +617,7 @@ VkPipelineRasterizationStateCreateInfo Seele::init::PipelineRasterizationStateCr return pipelineRasterizationStateCreateInfo; } -VkPipelineColorBlendAttachmentState Seele::init::PipelineColorBlendAttachmentState( +VkPipelineColorBlendAttachmentState init::PipelineColorBlendAttachmentState( VkColorComponentFlags colorWriteMask, VkBool32 blendEnable) { @@ -625,7 +627,7 @@ VkPipelineColorBlendAttachmentState Seele::init::PipelineColorBlendAttachmentSta return pipelineColorBlendAttachmentState; } -VkPipelineColorBlendStateCreateInfo Seele::init::PipelineColorBlendStateCreateInfo( +VkPipelineColorBlendStateCreateInfo init::PipelineColorBlendStateCreateInfo( uint32_t attachmentCount, const VkPipelineColorBlendAttachmentState* pAttachments) { @@ -637,7 +639,7 @@ VkPipelineColorBlendStateCreateInfo Seele::init::PipelineColorBlendStateCreateIn return pipelineColorBlendStateCreateInfo; } -VkPipelineDepthStencilStateCreateInfo Seele::init::PipelineDepthStencilStateCreateInfo( +VkPipelineDepthStencilStateCreateInfo init::PipelineDepthStencilStateCreateInfo( VkBool32 depthTestEnable, VkBool32 depthWriteEnable, VkCompareOp depthCompareOp) @@ -652,7 +654,7 @@ VkPipelineDepthStencilStateCreateInfo Seele::init::PipelineDepthStencilStateCrea return pipelineDepthStencilStateCreateInfo; } -VkPipelineViewportStateCreateInfo Seele::init::PipelineViewportStateCreateInfo( +VkPipelineViewportStateCreateInfo init::PipelineViewportStateCreateInfo( uint32_t viewportCount, uint32_t scissorCount, VkPipelineViewportStateCreateFlags flags) @@ -665,7 +667,7 @@ VkPipelineViewportStateCreateInfo Seele::init::PipelineViewportStateCreateInfo( return pipelineViewportStateCreateInfo; } -VkPipelineMultisampleStateCreateInfo Seele::init::PipelineMultisampleStateCreateInfo( +VkPipelineMultisampleStateCreateInfo init::PipelineMultisampleStateCreateInfo( VkSampleCountFlagBits rasterizationSamples, VkPipelineMultisampleStateCreateFlags flags) { @@ -675,7 +677,7 @@ VkPipelineMultisampleStateCreateInfo Seele::init::PipelineMultisampleStateCreate return pipelineMultisampleStateCreateInfo; } -VkPipelineDynamicStateCreateInfo Seele::init::PipelineDynamicStateCreateInfo( +VkPipelineDynamicStateCreateInfo init::PipelineDynamicStateCreateInfo( const VkDynamicState* pDynamicStates, uint32_t dynamicStateCount, VkPipelineDynamicStateCreateFlags flags) @@ -687,7 +689,7 @@ VkPipelineDynamicStateCreateInfo Seele::init::PipelineDynamicStateCreateInfo( return pipelineDynamicStateCreateInfo; } -VkPipelineTessellationStateCreateInfo Seele::init::PipelineTessellationStateCreateInfo(uint32_t patchControlPoints) +VkPipelineTessellationStateCreateInfo init::PipelineTessellationStateCreateInfo(uint32_t patchControlPoints) { VkPipelineTessellationStateCreateInfo pipelineTessellationStateCreateInfo = {}; pipelineTessellationStateCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO; @@ -695,7 +697,7 @@ VkPipelineTessellationStateCreateInfo Seele::init::PipelineTessellationStateCrea return pipelineTessellationStateCreateInfo; } -VkGraphicsPipelineCreateInfo Seele::init::PipelineCreateInfo( +VkGraphicsPipelineCreateInfo init::PipelineCreateInfo( VkPipelineLayout layout, VkRenderPass renderPass, VkPipelineCreateFlags flags) @@ -709,7 +711,7 @@ VkGraphicsPipelineCreateInfo Seele::init::PipelineCreateInfo( return pipelineCreateInfo; } -VkComputePipelineCreateInfo Seele::init::ComputePipelineCreateInfo(VkPipelineLayout layout, VkPipelineCreateFlags flags) +VkComputePipelineCreateInfo init::ComputePipelineCreateInfo(VkPipelineLayout layout, VkPipelineCreateFlags flags) { VkComputePipelineCreateInfo computePipelineCreateInfo = {}; computePipelineCreateInfo.sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO; @@ -718,7 +720,7 @@ VkComputePipelineCreateInfo Seele::init::ComputePipelineCreateInfo(VkPipelineLay return computePipelineCreateInfo; } -VkPushConstantRange Seele::init::PushConstantRange( +VkPushConstantRange init::PushConstantRange( VkShaderStageFlags stageFlags, uint32_t size, uint32_t offset) @@ -730,7 +732,7 @@ VkPushConstantRange Seele::init::PushConstantRange( return pushConstantRange; } -VkPipelineShaderStageCreateInfo Seele::init::PipelineShaderStageCreateInfo(VkShaderStageFlagBits stage, VkShaderModule module, const char* entryName) +VkPipelineShaderStageCreateInfo init::PipelineShaderStageCreateInfo(VkShaderStageFlagBits stage, VkShaderModule module, const char* entryName) { VkPipelineShaderStageCreateInfo info = {}; info.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; @@ -741,11 +743,11 @@ VkPipelineShaderStageCreateInfo Seele::init::PipelineShaderStageCreateInfo(VkSha } -VkBool32 Seele::debugCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objType, uint64_t obj, size_t location, int32_t code, const char* layerPrefix, const char* msg, void* userDataManager) { +VkBool32 debugCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objType, uint64_t obj, size_t location, int32_t code, const char* layerPrefix, const char* msg, void* userDataManager) { std::cerr << layerPrefix << ": " << msg << std::endl; return VK_FALSE; } -VkResult Seele::CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) { +VkResult CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) { auto func = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT"); if (func != nullptr) { return func(instance, pCreateInfo, pAllocator, pCallback); @@ -755,7 +757,7 @@ VkResult Seele::CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugR } } -void Seele::DestroyDebugReportCallbackEXT(VkInstance instance, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT pCallback) +void DestroyDebugReportCallbackEXT(VkInstance instance, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT pCallback) { auto func = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT"); if (func != nullptr) { diff --git a/src/Engine/Graphics/Vulkan/VulkanInitializer.h b/src/Engine/Graphics/Vulkan/VulkanInitializer.h index 89d12b8..76f64a5 100644 --- a/src/Engine/Graphics/Vulkan/VulkanInitializer.h +++ b/src/Engine/Graphics/Vulkan/VulkanInitializer.h @@ -3,299 +3,302 @@ namespace Seele { - VkBool32 debugCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objType, uint64_t obj, size_t location, int32_t code, const char* layerPrefix, const char* msg, void* userData); - - VkResult CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); - void DestroyDebugReportCallbackEXT(VkInstance instance, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT pCallback); - - namespace init + namespace Vulkan { - VkApplicationInfo ApplicationInfo( - const char* appName, - uint32_t appVersion, - const char* engineName, - uint32_t engineVersion, - uint32_t apiVersion); + VkBool32 debugCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objType, uint64_t obj, size_t location, int32_t code, const char* layerPrefix, const char* msg, void* userData); - VkInstanceCreateInfo InstanceCreateInfo( - VkApplicationInfo* appInfo, - const Array& extensions, - const Array& layers); + VkResult CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); + void DestroyDebugReportCallbackEXT(VkInstance instance, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT pCallback); - VkDebugReportCallbackCreateInfoEXT DebugReportCallbackCreateInfo( - VkDebugReportFlagsEXT flags); + namespace init + { + VkApplicationInfo ApplicationInfo( + const char* appName, + uint32_t appVersion, + const char* engineName, + uint32_t engineVersion, + uint32_t apiVersion); - VkDeviceQueueCreateInfo DeviceQueueCreateInfo( - int queueFamilyIndex, - int queueCount); + VkInstanceCreateInfo InstanceCreateInfo( + VkApplicationInfo* appInfo, + const Array& extensions, + const Array& layers); - VkDeviceQueueCreateInfo DeviceQueueCreateInfo( - int queueFamilyIndex, - int queueCount, - float* queuePriority); + VkDebugReportCallbackCreateInfoEXT DebugReportCallbackCreateInfo( + VkDebugReportFlagsEXT flags); - VkDeviceCreateInfo DeviceCreateInfo( - VkDeviceQueueCreateInfo* queueInfos, - uint32_t queueCount, - VkPhysicalDeviceFeatures* features, - const char* const* deviceExtensions, - uint32_t deviceExtensionCount, - const char* const* layers, - uint32_t layerCount); + VkDeviceQueueCreateInfo DeviceQueueCreateInfo( + int queueFamilyIndex, + int queueCount); - VkDeviceCreateInfo DeviceCreateInfo( - VkDeviceQueueCreateInfo* queueInfos, - uint32_t queueCount, - VkPhysicalDeviceFeatures* features); + VkDeviceQueueCreateInfo DeviceQueueCreateInfo( + int queueFamilyIndex, + int queueCount, + float* queuePriority); - VkSwapchainCreateInfoKHR SwapchainCreateInfo( - VkSurfaceKHR surface, - uint32_t minImageCount, - VkFormat imageFormat, - VkColorSpaceKHR colorSpace, - VkExtent2D extent, - uint32_t arrayLayers, - VkImageUsageFlags usage, - VkSurfaceTransformFlagBitsKHR Transform, - VkCompositeAlphaFlagBitsKHR alpha, - VkPresentModeKHR presentMode, - VkBool32 clipped); + VkDeviceCreateInfo DeviceCreateInfo( + VkDeviceQueueCreateInfo* queueInfos, + uint32_t queueCount, + VkPhysicalDeviceFeatures* features, + const char* const* deviceExtensions, + uint32_t deviceExtensionCount, + const char* const* layers, + uint32_t layerCount); - VkSwapchainCreateInfoKHR SwapchainCreateInfo( - VkSurfaceKHR surface, - uint32_t minImageCount, - VkFormat imageFormat, - VkColorSpaceKHR colorSpace, - uint32_t width, - uint32_t height, - uint32_t arrayLayers, - VkImageUsageFlags usage, - VkSurfaceTransformFlagBitsKHR Transform, - VkCompositeAlphaFlagBitsKHR alpha, - VkPresentModeKHR presentMode, - VkBool32 clipped); + VkDeviceCreateInfo DeviceCreateInfo( + VkDeviceQueueCreateInfo* queueInfos, + uint32_t queueCount, + VkPhysicalDeviceFeatures* features); - VkFramebufferCreateInfo FramebufferCreateInfo( - VkRenderPass renderPass, - uint32_t attachmentCount, - VkImageView* attachments, - uint32_t width, - uint32_t height, - uint32_t layers); + VkSwapchainCreateInfoKHR SwapchainCreateInfo( + VkSurfaceKHR surface, + uint32_t minImageCount, + VkFormat imageFormat, + VkColorSpaceKHR colorSpace, + VkExtent2D extent, + uint32_t arrayLayers, + VkImageUsageFlags usage, + VkSurfaceTransformFlagBitsKHR Transform, + VkCompositeAlphaFlagBitsKHR alpha, + VkPresentModeKHR presentMode, + VkBool32 clipped); - VkAttachmentDescription AttachmentDescription( - VkFormat format, - VkSampleCountFlagBits sample, - VkAttachmentLoadOp loadOp, - VkAttachmentStoreOp storeOp, - VkAttachmentLoadOp stencilLoadOp, - VkAttachmentStoreOp stencilStoreOp, - VkImageLayout imageLayout, - VkImageLayout finalLayout); + VkSwapchainCreateInfoKHR SwapchainCreateInfo( + VkSurfaceKHR surface, + uint32_t minImageCount, + VkFormat imageFormat, + VkColorSpaceKHR colorSpace, + uint32_t width, + uint32_t height, + uint32_t arrayLayers, + VkImageUsageFlags usage, + VkSurfaceTransformFlagBitsKHR Transform, + VkCompositeAlphaFlagBitsKHR alpha, + VkPresentModeKHR presentMode, + VkBool32 clipped); - VkSubpassDescription SubpassDescription( - VkPipelineBindPoint bindPoint, - uint32_t colorAttachmentCount, - VkAttachmentReference* colorReference, - uint32_t depthAttachmentCount = 0, - VkAttachmentReference* depthReference = nullptr, - uint32_t inputAttachmentCount = 0, - VkAttachmentReference* inputReference = nullptr, - uint32_t resolveAttachmentCount = 0, - VkAttachmentReference* resolveReference = nullptr, - uint32_t preserveAttachmentCount = 0, - VkAttachmentReference* preserveReference = nullptr); + VkFramebufferCreateInfo FramebufferCreateInfo( + VkRenderPass renderPass, + uint32_t attachmentCount, + VkImageView* attachments, + uint32_t width, + uint32_t height, + uint32_t layers); - VkRenderPassCreateInfo RenderPassCreateInfo( - uint32_t attachmentCount, - const VkAttachmentDescription* attachments, - uint32_t subpassCount, - const VkSubpassDescription* subpasses, - uint32_t dependencyCount, - const VkSubpassDependency* subpassDependencies); + VkAttachmentDescription AttachmentDescription( + VkFormat format, + VkSampleCountFlagBits sample, + VkAttachmentLoadOp loadOp, + VkAttachmentStoreOp storeOp, + VkAttachmentLoadOp stencilLoadOp, + VkAttachmentStoreOp stencilStoreOp, + VkImageLayout imageLayout, + VkImageLayout finalLayout); - VkMemoryAllocateInfo MemoryAllocateInfo(); + VkSubpassDescription SubpassDescription( + VkPipelineBindPoint bindPoint, + uint32_t colorAttachmentCount, + VkAttachmentReference* colorReference, + uint32_t depthAttachmentCount = 0, + VkAttachmentReference* depthReference = nullptr, + uint32_t inputAttachmentCount = 0, + VkAttachmentReference* inputReference = nullptr, + uint32_t resolveAttachmentCount = 0, + VkAttachmentReference* resolveReference = nullptr, + uint32_t preserveAttachmentCount = 0, + VkAttachmentReference* preserveReference = nullptr); - VkCommandBufferAllocateInfo CommandBufferAllocateInfo( - VkCommandPool cmdPool, - VkCommandBufferLevel level, - uint32_t bufferCount); + VkRenderPassCreateInfo RenderPassCreateInfo( + uint32_t attachmentCount, + const VkAttachmentDescription* attachments, + uint32_t subpassCount, + const VkSubpassDescription* subpasses, + uint32_t dependencyCount, + const VkSubpassDependency* subpassDependencies); - VkCommandPoolCreateInfo CommandPoolCreateInfo(); + VkMemoryAllocateInfo MemoryAllocateInfo(); - VkCommandBufferBeginInfo CommandBufferBeginInfo(); + VkCommandBufferAllocateInfo CommandBufferAllocateInfo( + VkCommandPool cmdPool, + VkCommandBufferLevel level, + uint32_t bufferCount); - VkCommandBufferInheritanceInfo CommandBufferInheritanceInfo(); + VkCommandPoolCreateInfo CommandPoolCreateInfo(); - VkRenderPassBeginInfo RenderPassBeginInfo(); + VkCommandBufferBeginInfo CommandBufferBeginInfo(); - VkRenderPassCreateInfo RenderPassCreateInfo(); + VkCommandBufferInheritanceInfo CommandBufferInheritanceInfo(); - VkImageMemoryBarrier ImageMemoryBarrier(VkImage image, VkImageLayout oldLayout, VkImageLayout newLayout, uint32_t srcQueue = VK_QUEUE_FAMILY_IGNORED, uint32_t dstQueue = VK_QUEUE_FAMILY_IGNORED); - VkImageMemoryBarrier ImageMemoryBarrier(); + VkRenderPassBeginInfo RenderPassBeginInfo(); - VkBufferMemoryBarrier BufferMemoryBarrier(); + VkRenderPassCreateInfo RenderPassCreateInfo(); - VkMemoryBarrier MemoryBarrier(); + VkImageMemoryBarrier ImageMemoryBarrier(VkImage image, VkImageLayout oldLayout, VkImageLayout newLayout, uint32_t srcQueue = VK_QUEUE_FAMILY_IGNORED, uint32_t dstQueue = VK_QUEUE_FAMILY_IGNORED); + VkImageMemoryBarrier ImageMemoryBarrier(); - VkImageCreateInfo ImageCreateInfo(); + VkBufferMemoryBarrier BufferMemoryBarrier(); - VkSamplerCreateInfo SamplerCreateInfo(); + VkMemoryBarrier MemoryBarrier(); - VkImageViewCreateInfo ImageViewCreateInfo(); + VkImageCreateInfo ImageCreateInfo(); - VkSemaphoreCreateInfo SemaphoreCreateInfo(); + VkSamplerCreateInfo SamplerCreateInfo(); - VkFenceCreateInfo FenceCreateInfo( - VkFenceCreateFlags flags); + VkImageViewCreateInfo ImageViewCreateInfo(); - VkEventCreateInfo EventCreateInfo(); + VkSemaphoreCreateInfo SemaphoreCreateInfo(); - VkSubmitInfo SubmitInfo(); + VkFenceCreateInfo FenceCreateInfo( + VkFenceCreateFlags flags); - VkImageSubresourceRange ImageSubresourceRange( - VkImageAspectFlags aspect = VK_IMAGE_ASPECT_COLOR_BIT, - uint32_t startMip = 0); + VkEventCreateInfo EventCreateInfo(); - VkViewport Viewport( - float width, - float height, - float minDepth, - float maxDepth); + VkSubmitInfo SubmitInfo(); - VkRect2D Rect2D( - int32_t width, - int32_t height, - int32_t offsetX, - int32_t offsetY); + VkImageSubresourceRange ImageSubresourceRange( + VkImageAspectFlags aspect = VK_IMAGE_ASPECT_COLOR_BIT, + uint32_t startMip = 0); - VkBufferCreateInfo BufferCreateInfo(); + VkViewport Viewport( + float width, + float height, + float minDepth, + float maxDepth); - VkBufferCreateInfo BufferCreateInfo( - VkBufferUsageFlags usage, - VkDeviceSize size); + VkRect2D Rect2D( + int32_t width, + int32_t height, + int32_t offsetX, + int32_t offsetY); - VkDescriptorPoolCreateInfo DescriptorPoolCreateInfo( - uint32_t poolSizeCount, - VkDescriptorPoolSize* pPoolSizes, - uint32_t maxSets); + VkBufferCreateInfo BufferCreateInfo(); - VkDescriptorPoolSize DescriptorPoolSize( - VkDescriptorType type, - uint32_t descriptorCount); + VkBufferCreateInfo BufferCreateInfo( + VkBufferUsageFlags usage, + VkDeviceSize size); - VkDescriptorSetLayoutBinding DescriptorSetLayoutBinding( - VkDescriptorType type, - VkShaderStageFlags stageFlags, - uint32_t binding, - uint32_t count); + VkDescriptorPoolCreateInfo DescriptorPoolCreateInfo( + uint32_t poolSizeCount, + VkDescriptorPoolSize* pPoolSizes, + uint32_t maxSets); - VkDescriptorSetLayoutCreateInfo DescriptorSetLayoutCreateInfo( - const VkDescriptorSetLayoutBinding* pBindings, - uint32_t bindingCount); + VkDescriptorPoolSize DescriptorPoolSize( + VkDescriptorType type, + uint32_t descriptorCount); - VkPipelineLayoutCreateInfo PipelineLayoutCreateInfo( - const VkDescriptorSetLayout* pSetLayouts, - uint32_t setLayoutCount); + VkDescriptorSetLayoutBinding DescriptorSetLayoutBinding( + VkDescriptorType type, + VkShaderStageFlags stageFlags, + uint32_t binding, + uint32_t count); - VkDescriptorSetAllocateInfo DescriptorSetAllocateInfo( - VkDescriptorPool descriptorPool, - const VkDescriptorSetLayout* pSetLayouts, - uint32_t descriptorSetCount); + VkDescriptorSetLayoutCreateInfo DescriptorSetLayoutCreateInfo( + const VkDescriptorSetLayoutBinding* pBindings, + uint32_t bindingCount); - VkDescriptorBufferInfo DescriptorBufferInfo( - VkBuffer buffer, - VkDeviceSize offset, - VkDeviceSize range); - VkDescriptorImageInfo DescriptorImageInfo( - VkSampler sampler, - VkImageView imageView, - VkImageLayout imageLayout); + VkPipelineLayoutCreateInfo PipelineLayoutCreateInfo( + const VkDescriptorSetLayout* pSetLayouts, + uint32_t setLayoutCount); - VkWriteDescriptorSet WriteDescriptorSet( - VkDescriptorSet dstSet, - VkDescriptorType type, - uint32_t binding, - VkDescriptorBufferInfo* bufferInfo); + VkDescriptorSetAllocateInfo DescriptorSetAllocateInfo( + VkDescriptorPool descriptorPool, + const VkDescriptorSetLayout* pSetLayouts, + uint32_t descriptorSetCount); - VkWriteDescriptorSet WriteDescriptorSet( - VkDescriptorSet dstSet, - VkDescriptorType type, - uint32_t binding, - VkDescriptorImageInfo* bufferInfo); + VkDescriptorBufferInfo DescriptorBufferInfo( + VkBuffer buffer, + VkDeviceSize offset, + VkDeviceSize range); + VkDescriptorImageInfo DescriptorImageInfo( + VkSampler sampler, + VkImageView imageView, + VkImageLayout imageLayout); + + VkWriteDescriptorSet WriteDescriptorSet( + VkDescriptorSet dstSet, + VkDescriptorType type, + uint32_t binding, + VkDescriptorBufferInfo* bufferInfo); + + VkWriteDescriptorSet WriteDescriptorSet( + VkDescriptorSet dstSet, + VkDescriptorType type, + uint32_t binding, + VkDescriptorImageInfo* bufferInfo); - VkVertexInputBindingDescription VertexInputBindingDescription( - uint32_t binding, - uint32_t stride, - VkVertexInputRate inputRate); + VkVertexInputBindingDescription VertexInputBindingDescription( + uint32_t binding, + uint32_t stride, + VkVertexInputRate inputRate); - VkVertexInputAttributeDescription VertexInputAttributeDescription( - uint32_t binding, - uint32_t location, - VkFormat format, - uint32_t offset); + VkVertexInputAttributeDescription VertexInputAttributeDescription( + uint32_t binding, + uint32_t location, + VkFormat format, + uint32_t offset); - VkPipelineVertexInputStateCreateInfo PipelineVertexInputStateCreateInfo(); + VkPipelineVertexInputStateCreateInfo PipelineVertexInputStateCreateInfo(); - VkPipelineInputAssemblyStateCreateInfo PipelineInputAssemblyStateCreateInfo( - VkPrimitiveTopology topology, - VkPipelineInputAssemblyStateCreateFlags flags, - VkBool32 primitiveRestartEnable); + VkPipelineInputAssemblyStateCreateInfo PipelineInputAssemblyStateCreateInfo( + VkPrimitiveTopology topology, + VkPipelineInputAssemblyStateCreateFlags flags, + VkBool32 primitiveRestartEnable); - VkPipelineRasterizationStateCreateInfo PipelineRasterizationStateCreateInfo( - VkPolygonMode polygonMode, - VkCullModeFlags cullMode, - VkFrontFace frontFace, - VkPipelineRasterizationStateCreateFlags flags); + VkPipelineRasterizationStateCreateInfo PipelineRasterizationStateCreateInfo( + VkPolygonMode polygonMode, + VkCullModeFlags cullMode, + VkFrontFace frontFace, + VkPipelineRasterizationStateCreateFlags flags); - VkPipelineColorBlendAttachmentState PipelineColorBlendAttachmentState( - VkColorComponentFlags colorWriteMask, - VkBool32 blendEnable); + VkPipelineColorBlendAttachmentState PipelineColorBlendAttachmentState( + VkColorComponentFlags colorWriteMask, + VkBool32 blendEnable); - VkPipelineColorBlendStateCreateInfo PipelineColorBlendStateCreateInfo( - uint32_t attachmentCount, - const VkPipelineColorBlendAttachmentState* pAttachments); + VkPipelineColorBlendStateCreateInfo PipelineColorBlendStateCreateInfo( + uint32_t attachmentCount, + const VkPipelineColorBlendAttachmentState* pAttachments); - VkPipelineDepthStencilStateCreateInfo PipelineDepthStencilStateCreateInfo( - VkBool32 depthTestEnable, - VkBool32 depthWriteEnable, - VkCompareOp depthCompareOp); + VkPipelineDepthStencilStateCreateInfo PipelineDepthStencilStateCreateInfo( + VkBool32 depthTestEnable, + VkBool32 depthWriteEnable, + VkCompareOp depthCompareOp); - VkPipelineViewportStateCreateInfo PipelineViewportStateCreateInfo( - uint32_t viewportCount, - uint32_t scissorCount, - VkPipelineViewportStateCreateFlags flags); + VkPipelineViewportStateCreateInfo PipelineViewportStateCreateInfo( + uint32_t viewportCount, + uint32_t scissorCount, + VkPipelineViewportStateCreateFlags flags); - VkPipelineMultisampleStateCreateInfo PipelineMultisampleStateCreateInfo( - VkSampleCountFlagBits rasterizationSamples, - VkPipelineMultisampleStateCreateFlags flags); + VkPipelineMultisampleStateCreateInfo PipelineMultisampleStateCreateInfo( + VkSampleCountFlagBits rasterizationSamples, + VkPipelineMultisampleStateCreateFlags flags); - VkPipelineDynamicStateCreateInfo PipelineDynamicStateCreateInfo( - const VkDynamicState* pDynamicStates, - uint32_t dynamicStateCount, - VkPipelineDynamicStateCreateFlags flags); + VkPipelineDynamicStateCreateInfo PipelineDynamicStateCreateInfo( + const VkDynamicState* pDynamicStates, + uint32_t dynamicStateCount, + VkPipelineDynamicStateCreateFlags flags); - VkPipelineTessellationStateCreateInfo PipelineTessellationStateCreateInfo( - uint32_t patchControlPoints); + VkPipelineTessellationStateCreateInfo PipelineTessellationStateCreateInfo( + uint32_t patchControlPoints); - VkGraphicsPipelineCreateInfo PipelineCreateInfo( - VkPipelineLayout layout, - VkRenderPass renderPass, - VkPipelineCreateFlags flags); + VkGraphicsPipelineCreateInfo PipelineCreateInfo( + VkPipelineLayout layout, + VkRenderPass renderPass, + VkPipelineCreateFlags flags); - VkComputePipelineCreateInfo ComputePipelineCreateInfo( - VkPipelineLayout layout, - VkPipelineCreateFlags flags); + VkComputePipelineCreateInfo ComputePipelineCreateInfo( + VkPipelineLayout layout, + VkPipelineCreateFlags flags); - VkPushConstantRange PushConstantRange( - VkShaderStageFlags stageFlags, - uint32_t size, - uint32_t offset); + VkPushConstantRange PushConstantRange( + VkShaderStageFlags stageFlags, + uint32_t size, + uint32_t offset); - VkPipelineShaderStageCreateInfo PipelineShaderStageCreateInfo( - VkShaderStageFlagBits stage, - VkShaderModule module, - const char* entryName); + VkPipelineShaderStageCreateInfo PipelineShaderStageCreateInfo( + VkShaderStageFlagBits stage, + VkShaderModule module, + const char* entryName); + } } -} +} \ No newline at end of file diff --git a/src/Engine/Graphics/Window.cpp b/src/Engine/Graphics/Window.cpp index 17ff29c..d76ab2f 100644 --- a/src/Engine/Graphics/Window.cpp +++ b/src/Engine/Graphics/Window.cpp @@ -1,7 +1,7 @@ #include "Window.h" #include "SceneView.h" -Seele::Window::Window(const WindowCreateInfo& createInfo, PGraphics graphics) +Seele::Window::Window(const WindowCreateInfo& createInfo, Gfx::PGraphics graphics) : width(createInfo.width) , height(createInfo.height) , graphics(graphics) diff --git a/src/Engine/Graphics/Window.h b/src/Engine/Graphics/Window.h index 3abd439..57dc8df 100644 --- a/src/Engine/Graphics/Window.h +++ b/src/Engine/Graphics/Window.h @@ -49,11 +49,11 @@ namespace Seele { Array views; }; DEFINE_REF(Section) - class Graphics; + class Gfx::Graphics; class Window { public: - Window(const WindowCreateInfo& createInfo, PGraphics graphics); + Window(const WindowCreateInfo& createInfo, Gfx::PGraphics graphics); ~Window(); void beginFrame(); void endFrame(); @@ -62,7 +62,7 @@ namespace Seele { PSection center; uint32 width; uint32 height; - PGraphics graphics; + Gfx::PGraphics graphics; }; DEFINE_REF(Window) } \ No newline at end of file diff --git a/src/Engine/Graphics/WindowManager.h b/src/Engine/Graphics/WindowManager.h index 7dd9813..368c959 100644 --- a/src/Engine/Graphics/WindowManager.h +++ b/src/Engine/Graphics/WindowManager.h @@ -15,7 +15,7 @@ namespace Seele void endFrame(); private: Array windows; - PGraphics graphics; + Gfx::PGraphics graphics; }; DEFINE_REF(WindowManager); } \ No newline at end of file diff --git a/src/Engine/Math/MemCRC.h b/src/Engine/Math/MemCRC.h index 679d559..4685888 100644 --- a/src/Engine/Math/MemCRC.h +++ b/src/Engine/Math/MemCRC.h @@ -1,204 +1,206 @@ #pragma once #include +namespace Seele +{ + static uint32_t CRCTablesSB8[8][256] = { + { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, + 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, + 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, + 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, + 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, + 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, + 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, + 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, + 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d + }, + { + 0x00000000, 0x191b3141, 0x32366282, 0x2b2d53c3, 0x646cc504, 0x7d77f445, 0x565aa786, 0x4f4196c7, 0xc8d98a08, 0xd1c2bb49, 0xfaefe88a, 0xe3f4d9cb, 0xacb54f0c, 0xb5ae7e4d, 0x9e832d8e, 0x87981ccf, + 0x4ac21251, 0x53d92310, 0x78f470d3, 0x61ef4192, 0x2eaed755, 0x37b5e614, 0x1c98b5d7, 0x05838496, 0x821b9859, 0x9b00a918, 0xb02dfadb, 0xa936cb9a, 0xe6775d5d, 0xff6c6c1c, 0xd4413fdf, 0xcd5a0e9e, + 0x958424a2, 0x8c9f15e3, 0xa7b24620, 0xbea97761, 0xf1e8e1a6, 0xe8f3d0e7, 0xc3de8324, 0xdac5b265, 0x5d5daeaa, 0x44469feb, 0x6f6bcc28, 0x7670fd69, 0x39316bae, 0x202a5aef, 0x0b07092c, 0x121c386d, + 0xdf4636f3, 0xc65d07b2, 0xed705471, 0xf46b6530, 0xbb2af3f7, 0xa231c2b6, 0x891c9175, 0x9007a034, 0x179fbcfb, 0x0e848dba, 0x25a9de79, 0x3cb2ef38, 0x73f379ff, 0x6ae848be, 0x41c51b7d, 0x58de2a3c, + 0xf0794f05, 0xe9627e44, 0xc24f2d87, 0xdb541cc6, 0x94158a01, 0x8d0ebb40, 0xa623e883, 0xbf38d9c2, 0x38a0c50d, 0x21bbf44c, 0x0a96a78f, 0x138d96ce, 0x5ccc0009, 0x45d73148, 0x6efa628b, 0x77e153ca, + 0xbabb5d54, 0xa3a06c15, 0x888d3fd6, 0x91960e97, 0xded79850, 0xc7cca911, 0xece1fad2, 0xf5facb93, 0x7262d75c, 0x6b79e61d, 0x4054b5de, 0x594f849f, 0x160e1258, 0x0f152319, 0x243870da, 0x3d23419b, + 0x65fd6ba7, 0x7ce65ae6, 0x57cb0925, 0x4ed03864, 0x0191aea3, 0x188a9fe2, 0x33a7cc21, 0x2abcfd60, 0xad24e1af, 0xb43fd0ee, 0x9f12832d, 0x8609b26c, 0xc94824ab, 0xd05315ea, 0xfb7e4629, 0xe2657768, + 0x2f3f79f6, 0x362448b7, 0x1d091b74, 0x04122a35, 0x4b53bcf2, 0x52488db3, 0x7965de70, 0x607eef31, 0xe7e6f3fe, 0xfefdc2bf, 0xd5d0917c, 0xcccba03d, 0x838a36fa, 0x9a9107bb, 0xb1bc5478, 0xa8a76539, + 0x3b83984b, 0x2298a90a, 0x09b5fac9, 0x10aecb88, 0x5fef5d4f, 0x46f46c0e, 0x6dd93fcd, 0x74c20e8c, 0xf35a1243, 0xea412302, 0xc16c70c1, 0xd8774180, 0x9736d747, 0x8e2de606, 0xa500b5c5, 0xbc1b8484, + 0x71418a1a, 0x685abb5b, 0x4377e898, 0x5a6cd9d9, 0x152d4f1e, 0x0c367e5f, 0x271b2d9c, 0x3e001cdd, 0xb9980012, 0xa0833153, 0x8bae6290, 0x92b553d1, 0xddf4c516, 0xc4eff457, 0xefc2a794, 0xf6d996d5, + 0xae07bce9, 0xb71c8da8, 0x9c31de6b, 0x852aef2a, 0xca6b79ed, 0xd37048ac, 0xf85d1b6f, 0xe1462a2e, 0x66de36e1, 0x7fc507a0, 0x54e85463, 0x4df36522, 0x02b2f3e5, 0x1ba9c2a4, 0x30849167, 0x299fa026, + 0xe4c5aeb8, 0xfdde9ff9, 0xd6f3cc3a, 0xcfe8fd7b, 0x80a96bbc, 0x99b25afd, 0xb29f093e, 0xab84387f, 0x2c1c24b0, 0x350715f1, 0x1e2a4632, 0x07317773, 0x4870e1b4, 0x516bd0f5, 0x7a468336, 0x635db277, + 0xcbfad74e, 0xd2e1e60f, 0xf9ccb5cc, 0xe0d7848d, 0xaf96124a, 0xb68d230b, 0x9da070c8, 0x84bb4189, 0x03235d46, 0x1a386c07, 0x31153fc4, 0x280e0e85, 0x674f9842, 0x7e54a903, 0x5579fac0, 0x4c62cb81, + 0x8138c51f, 0x9823f45e, 0xb30ea79d, 0xaa1596dc, 0xe554001b, 0xfc4f315a, 0xd7626299, 0xce7953d8, 0x49e14f17, 0x50fa7e56, 0x7bd72d95, 0x62cc1cd4, 0x2d8d8a13, 0x3496bb52, 0x1fbbe891, 0x06a0d9d0, + 0x5e7ef3ec, 0x4765c2ad, 0x6c48916e, 0x7553a02f, 0x3a1236e8, 0x230907a9, 0x0824546a, 0x113f652b, 0x96a779e4, 0x8fbc48a5, 0xa4911b66, 0xbd8a2a27, 0xf2cbbce0, 0xebd08da1, 0xc0fdde62, 0xd9e6ef23, + 0x14bce1bd, 0x0da7d0fc, 0x268a833f, 0x3f91b27e, 0x70d024b9, 0x69cb15f8, 0x42e6463b, 0x5bfd777a, 0xdc656bb5, 0xc57e5af4, 0xee530937, 0xf7483876, 0xb809aeb1, 0xa1129ff0, 0x8a3fcc33, 0x9324fd72 + }, + { + 0x00000000, 0x01c26a37, 0x0384d46e, 0x0246be59, 0x0709a8dc, 0x06cbc2eb, 0x048d7cb2, 0x054f1685, 0x0e1351b8, 0x0fd13b8f, 0x0d9785d6, 0x0c55efe1, 0x091af964, 0x08d89353, 0x0a9e2d0a, 0x0b5c473d, + 0x1c26a370, 0x1de4c947, 0x1fa2771e, 0x1e601d29, 0x1b2f0bac, 0x1aed619b, 0x18abdfc2, 0x1969b5f5, 0x1235f2c8, 0x13f798ff, 0x11b126a6, 0x10734c91, 0x153c5a14, 0x14fe3023, 0x16b88e7a, 0x177ae44d, + 0x384d46e0, 0x398f2cd7, 0x3bc9928e, 0x3a0bf8b9, 0x3f44ee3c, 0x3e86840b, 0x3cc03a52, 0x3d025065, 0x365e1758, 0x379c7d6f, 0x35dac336, 0x3418a901, 0x3157bf84, 0x3095d5b3, 0x32d36bea, 0x331101dd, + 0x246be590, 0x25a98fa7, 0x27ef31fe, 0x262d5bc9, 0x23624d4c, 0x22a0277b, 0x20e69922, 0x2124f315, 0x2a78b428, 0x2bbade1f, 0x29fc6046, 0x283e0a71, 0x2d711cf4, 0x2cb376c3, 0x2ef5c89a, 0x2f37a2ad, + 0x709a8dc0, 0x7158e7f7, 0x731e59ae, 0x72dc3399, 0x7793251c, 0x76514f2b, 0x7417f172, 0x75d59b45, 0x7e89dc78, 0x7f4bb64f, 0x7d0d0816, 0x7ccf6221, 0x798074a4, 0x78421e93, 0x7a04a0ca, 0x7bc6cafd, + 0x6cbc2eb0, 0x6d7e4487, 0x6f38fade, 0x6efa90e9, 0x6bb5866c, 0x6a77ec5b, 0x68315202, 0x69f33835, 0x62af7f08, 0x636d153f, 0x612bab66, 0x60e9c151, 0x65a6d7d4, 0x6464bde3, 0x662203ba, 0x67e0698d, + 0x48d7cb20, 0x4915a117, 0x4b531f4e, 0x4a917579, 0x4fde63fc, 0x4e1c09cb, 0x4c5ab792, 0x4d98dda5, 0x46c49a98, 0x4706f0af, 0x45404ef6, 0x448224c1, 0x41cd3244, 0x400f5873, 0x4249e62a, 0x438b8c1d, + 0x54f16850, 0x55330267, 0x5775bc3e, 0x56b7d609, 0x53f8c08c, 0x523aaabb, 0x507c14e2, 0x51be7ed5, 0x5ae239e8, 0x5b2053df, 0x5966ed86, 0x58a487b1, 0x5deb9134, 0x5c29fb03, 0x5e6f455a, 0x5fad2f6d, + 0xe1351b80, 0xe0f771b7, 0xe2b1cfee, 0xe373a5d9, 0xe63cb35c, 0xe7fed96b, 0xe5b86732, 0xe47a0d05, 0xef264a38, 0xeee4200f, 0xeca29e56, 0xed60f461, 0xe82fe2e4, 0xe9ed88d3, 0xebab368a, 0xea695cbd, + 0xfd13b8f0, 0xfcd1d2c7, 0xfe976c9e, 0xff5506a9, 0xfa1a102c, 0xfbd87a1b, 0xf99ec442, 0xf85cae75, 0xf300e948, 0xf2c2837f, 0xf0843d26, 0xf1465711, 0xf4094194, 0xf5cb2ba3, 0xf78d95fa, 0xf64fffcd, + 0xd9785d60, 0xd8ba3757, 0xdafc890e, 0xdb3ee339, 0xde71f5bc, 0xdfb39f8b, 0xddf521d2, 0xdc374be5, 0xd76b0cd8, 0xd6a966ef, 0xd4efd8b6, 0xd52db281, 0xd062a404, 0xd1a0ce33, 0xd3e6706a, 0xd2241a5d, + 0xc55efe10, 0xc49c9427, 0xc6da2a7e, 0xc7184049, 0xc25756cc, 0xc3953cfb, 0xc1d382a2, 0xc011e895, 0xcb4dafa8, 0xca8fc59f, 0xc8c97bc6, 0xc90b11f1, 0xcc440774, 0xcd866d43, 0xcfc0d31a, 0xce02b92d, + 0x91af9640, 0x906dfc77, 0x922b422e, 0x93e92819, 0x96a63e9c, 0x976454ab, 0x9522eaf2, 0x94e080c5, 0x9fbcc7f8, 0x9e7eadcf, 0x9c381396, 0x9dfa79a1, 0x98b56f24, 0x99770513, 0x9b31bb4a, 0x9af3d17d, + 0x8d893530, 0x8c4b5f07, 0x8e0de15e, 0x8fcf8b69, 0x8a809dec, 0x8b42f7db, 0x89044982, 0x88c623b5, 0x839a6488, 0x82580ebf, 0x801eb0e6, 0x81dcdad1, 0x8493cc54, 0x8551a663, 0x8717183a, 0x86d5720d, + 0xa9e2d0a0, 0xa820ba97, 0xaa6604ce, 0xaba46ef9, 0xaeeb787c, 0xaf29124b, 0xad6fac12, 0xacadc625, 0xa7f18118, 0xa633eb2f, 0xa4755576, 0xa5b73f41, 0xa0f829c4, 0xa13a43f3, 0xa37cfdaa, 0xa2be979d, + 0xb5c473d0, 0xb40619e7, 0xb640a7be, 0xb782cd89, 0xb2cddb0c, 0xb30fb13b, 0xb1490f62, 0xb08b6555, 0xbbd72268, 0xba15485f, 0xb853f606, 0xb9919c31, 0xbcde8ab4, 0xbd1ce083, 0xbf5a5eda, 0xbe9834ed + }, + { + 0x00000000, 0xb8bc6765, 0xaa09c88b, 0x12b5afee, 0x8f629757, 0x37def032, 0x256b5fdc, 0x9dd738b9, 0xc5b428ef, 0x7d084f8a, 0x6fbde064, 0xd7018701, 0x4ad6bfb8, 0xf26ad8dd, 0xe0df7733, 0x58631056, + 0x5019579f, 0xe8a530fa, 0xfa109f14, 0x42acf871, 0xdf7bc0c8, 0x67c7a7ad, 0x75720843, 0xcdce6f26, 0x95ad7f70, 0x2d111815, 0x3fa4b7fb, 0x8718d09e, 0x1acfe827, 0xa2738f42, 0xb0c620ac, 0x087a47c9, + 0xa032af3e, 0x188ec85b, 0x0a3b67b5, 0xb28700d0, 0x2f503869, 0x97ec5f0c, 0x8559f0e2, 0x3de59787, 0x658687d1, 0xdd3ae0b4, 0xcf8f4f5a, 0x7733283f, 0xeae41086, 0x525877e3, 0x40edd80d, 0xf851bf68, + 0xf02bf8a1, 0x48979fc4, 0x5a22302a, 0xe29e574f, 0x7f496ff6, 0xc7f50893, 0xd540a77d, 0x6dfcc018, 0x359fd04e, 0x8d23b72b, 0x9f9618c5, 0x272a7fa0, 0xbafd4719, 0x0241207c, 0x10f48f92, 0xa848e8f7, + 0x9b14583d, 0x23a83f58, 0x311d90b6, 0x89a1f7d3, 0x1476cf6a, 0xaccaa80f, 0xbe7f07e1, 0x06c36084, 0x5ea070d2, 0xe61c17b7, 0xf4a9b859, 0x4c15df3c, 0xd1c2e785, 0x697e80e0, 0x7bcb2f0e, 0xc377486b, + 0xcb0d0fa2, 0x73b168c7, 0x6104c729, 0xd9b8a04c, 0x446f98f5, 0xfcd3ff90, 0xee66507e, 0x56da371b, 0x0eb9274d, 0xb6054028, 0xa4b0efc6, 0x1c0c88a3, 0x81dbb01a, 0x3967d77f, 0x2bd27891, 0x936e1ff4, + 0x3b26f703, 0x839a9066, 0x912f3f88, 0x299358ed, 0xb4446054, 0x0cf80731, 0x1e4da8df, 0xa6f1cfba, 0xfe92dfec, 0x462eb889, 0x549b1767, 0xec277002, 0x71f048bb, 0xc94c2fde, 0xdbf98030, 0x6345e755, + 0x6b3fa09c, 0xd383c7f9, 0xc1366817, 0x798a0f72, 0xe45d37cb, 0x5ce150ae, 0x4e54ff40, 0xf6e89825, 0xae8b8873, 0x1637ef16, 0x048240f8, 0xbc3e279d, 0x21e91f24, 0x99557841, 0x8be0d7af, 0x335cb0ca, + 0xed59b63b, 0x55e5d15e, 0x47507eb0, 0xffec19d5, 0x623b216c, 0xda874609, 0xc832e9e7, 0x708e8e82, 0x28ed9ed4, 0x9051f9b1, 0x82e4565f, 0x3a58313a, 0xa78f0983, 0x1f336ee6, 0x0d86c108, 0xb53aa66d, + 0xbd40e1a4, 0x05fc86c1, 0x1749292f, 0xaff54e4a, 0x322276f3, 0x8a9e1196, 0x982bbe78, 0x2097d91d, 0x78f4c94b, 0xc048ae2e, 0xd2fd01c0, 0x6a4166a5, 0xf7965e1c, 0x4f2a3979, 0x5d9f9697, 0xe523f1f2, + 0x4d6b1905, 0xf5d77e60, 0xe762d18e, 0x5fdeb6eb, 0xc2098e52, 0x7ab5e937, 0x680046d9, 0xd0bc21bc, 0x88df31ea, 0x3063568f, 0x22d6f961, 0x9a6a9e04, 0x07bda6bd, 0xbf01c1d8, 0xadb46e36, 0x15080953, + 0x1d724e9a, 0xa5ce29ff, 0xb77b8611, 0x0fc7e174, 0x9210d9cd, 0x2aacbea8, 0x38191146, 0x80a57623, 0xd8c66675, 0x607a0110, 0x72cfaefe, 0xca73c99b, 0x57a4f122, 0xef189647, 0xfdad39a9, 0x45115ecc, + 0x764dee06, 0xcef18963, 0xdc44268d, 0x64f841e8, 0xf92f7951, 0x41931e34, 0x5326b1da, 0xeb9ad6bf, 0xb3f9c6e9, 0x0b45a18c, 0x19f00e62, 0xa14c6907, 0x3c9b51be, 0x842736db, 0x96929935, 0x2e2efe50, + 0x2654b999, 0x9ee8defc, 0x8c5d7112, 0x34e11677, 0xa9362ece, 0x118a49ab, 0x033fe645, 0xbb838120, 0xe3e09176, 0x5b5cf613, 0x49e959fd, 0xf1553e98, 0x6c820621, 0xd43e6144, 0xc68bceaa, 0x7e37a9cf, + 0xd67f4138, 0x6ec3265d, 0x7c7689b3, 0xc4caeed6, 0x591dd66f, 0xe1a1b10a, 0xf3141ee4, 0x4ba87981, 0x13cb69d7, 0xab770eb2, 0xb9c2a15c, 0x017ec639, 0x9ca9fe80, 0x241599e5, 0x36a0360b, 0x8e1c516e, + 0x866616a7, 0x3eda71c2, 0x2c6fde2c, 0x94d3b949, 0x090481f0, 0xb1b8e695, 0xa30d497b, 0x1bb12e1e, 0x43d23e48, 0xfb6e592d, 0xe9dbf6c3, 0x516791a6, 0xccb0a91f, 0x740cce7a, 0x66b96194, 0xde0506f1 + }, + { + 0x00000000, 0x3d6029b0, 0x7ac05360, 0x47a07ad0, 0xf580a6c0, 0xc8e08f70, 0x8f40f5a0, 0xb220dc10, 0x30704bc1, 0x0d106271, 0x4ab018a1, 0x77d03111, 0xc5f0ed01, 0xf890c4b1, 0xbf30be61, 0x825097d1, + 0x60e09782, 0x5d80be32, 0x1a20c4e2, 0x2740ed52, 0x95603142, 0xa80018f2, 0xefa06222, 0xd2c04b92, 0x5090dc43, 0x6df0f5f3, 0x2a508f23, 0x1730a693, 0xa5107a83, 0x98705333, 0xdfd029e3, 0xe2b00053, + 0xc1c12f04, 0xfca106b4, 0xbb017c64, 0x866155d4, 0x344189c4, 0x0921a074, 0x4e81daa4, 0x73e1f314, 0xf1b164c5, 0xccd14d75, 0x8b7137a5, 0xb6111e15, 0x0431c205, 0x3951ebb5, 0x7ef19165, 0x4391b8d5, + 0xa121b886, 0x9c419136, 0xdbe1ebe6, 0xe681c256, 0x54a11e46, 0x69c137f6, 0x2e614d26, 0x13016496, 0x9151f347, 0xac31daf7, 0xeb91a027, 0xd6f18997, 0x64d15587, 0x59b17c37, 0x1e1106e7, 0x23712f57, + 0x58f35849, 0x659371f9, 0x22330b29, 0x1f532299, 0xad73fe89, 0x9013d739, 0xd7b3ade9, 0xead38459, 0x68831388, 0x55e33a38, 0x124340e8, 0x2f236958, 0x9d03b548, 0xa0639cf8, 0xe7c3e628, 0xdaa3cf98, + 0x3813cfcb, 0x0573e67b, 0x42d39cab, 0x7fb3b51b, 0xcd93690b, 0xf0f340bb, 0xb7533a6b, 0x8a3313db, 0x0863840a, 0x3503adba, 0x72a3d76a, 0x4fc3feda, 0xfde322ca, 0xc0830b7a, 0x872371aa, 0xba43581a, + 0x9932774d, 0xa4525efd, 0xe3f2242d, 0xde920d9d, 0x6cb2d18d, 0x51d2f83d, 0x167282ed, 0x2b12ab5d, 0xa9423c8c, 0x9422153c, 0xd3826fec, 0xeee2465c, 0x5cc29a4c, 0x61a2b3fc, 0x2602c92c, 0x1b62e09c, + 0xf9d2e0cf, 0xc4b2c97f, 0x8312b3af, 0xbe729a1f, 0x0c52460f, 0x31326fbf, 0x7692156f, 0x4bf23cdf, 0xc9a2ab0e, 0xf4c282be, 0xb362f86e, 0x8e02d1de, 0x3c220dce, 0x0142247e, 0x46e25eae, 0x7b82771e, + 0xb1e6b092, 0x8c869922, 0xcb26e3f2, 0xf646ca42, 0x44661652, 0x79063fe2, 0x3ea64532, 0x03c66c82, 0x8196fb53, 0xbcf6d2e3, 0xfb56a833, 0xc6368183, 0x74165d93, 0x49767423, 0x0ed60ef3, 0x33b62743, + 0xd1062710, 0xec660ea0, 0xabc67470, 0x96a65dc0, 0x248681d0, 0x19e6a860, 0x5e46d2b0, 0x6326fb00, 0xe1766cd1, 0xdc164561, 0x9bb63fb1, 0xa6d61601, 0x14f6ca11, 0x2996e3a1, 0x6e369971, 0x5356b0c1, + 0x70279f96, 0x4d47b626, 0x0ae7ccf6, 0x3787e546, 0x85a73956, 0xb8c710e6, 0xff676a36, 0xc2074386, 0x4057d457, 0x7d37fde7, 0x3a978737, 0x07f7ae87, 0xb5d77297, 0x88b75b27, 0xcf1721f7, 0xf2770847, + 0x10c70814, 0x2da721a4, 0x6a075b74, 0x576772c4, 0xe547aed4, 0xd8278764, 0x9f87fdb4, 0xa2e7d404, 0x20b743d5, 0x1dd76a65, 0x5a7710b5, 0x67173905, 0xd537e515, 0xe857cca5, 0xaff7b675, 0x92979fc5, + 0xe915e8db, 0xd475c16b, 0x93d5bbbb, 0xaeb5920b, 0x1c954e1b, 0x21f567ab, 0x66551d7b, 0x5b3534cb, 0xd965a31a, 0xe4058aaa, 0xa3a5f07a, 0x9ec5d9ca, 0x2ce505da, 0x11852c6a, 0x562556ba, 0x6b457f0a, + 0x89f57f59, 0xb49556e9, 0xf3352c39, 0xce550589, 0x7c75d999, 0x4115f029, 0x06b58af9, 0x3bd5a349, 0xb9853498, 0x84e51d28, 0xc34567f8, 0xfe254e48, 0x4c059258, 0x7165bbe8, 0x36c5c138, 0x0ba5e888, + 0x28d4c7df, 0x15b4ee6f, 0x521494bf, 0x6f74bd0f, 0xdd54611f, 0xe03448af, 0xa794327f, 0x9af41bcf, 0x18a48c1e, 0x25c4a5ae, 0x6264df7e, 0x5f04f6ce, 0xed242ade, 0xd044036e, 0x97e479be, 0xaa84500e, + 0x4834505d, 0x755479ed, 0x32f4033d, 0x0f942a8d, 0xbdb4f69d, 0x80d4df2d, 0xc774a5fd, 0xfa148c4d, 0x78441b9c, 0x4524322c, 0x028448fc, 0x3fe4614c, 0x8dc4bd5c, 0xb0a494ec, 0xf704ee3c, 0xca64c78c + }, + { + 0x00000000, 0xcb5cd3a5, 0x4dc8a10b, 0x869472ae, 0x9b914216, 0x50cd91b3, 0xd659e31d, 0x1d0530b8, 0xec53826d, 0x270f51c8, 0xa19b2366, 0x6ac7f0c3, 0x77c2c07b, 0xbc9e13de, 0x3a0a6170, 0xf156b2d5, + 0x03d6029b, 0xc88ad13e, 0x4e1ea390, 0x85427035, 0x9847408d, 0x531b9328, 0xd58fe186, 0x1ed33223, 0xef8580f6, 0x24d95353, 0xa24d21fd, 0x6911f258, 0x7414c2e0, 0xbf481145, 0x39dc63eb, 0xf280b04e, + 0x07ac0536, 0xccf0d693, 0x4a64a43d, 0x81387798, 0x9c3d4720, 0x57619485, 0xd1f5e62b, 0x1aa9358e, 0xebff875b, 0x20a354fe, 0xa6372650, 0x6d6bf5f5, 0x706ec54d, 0xbb3216e8, 0x3da66446, 0xf6fab7e3, + 0x047a07ad, 0xcf26d408, 0x49b2a6a6, 0x82ee7503, 0x9feb45bb, 0x54b7961e, 0xd223e4b0, 0x197f3715, 0xe82985c0, 0x23755665, 0xa5e124cb, 0x6ebdf76e, 0x73b8c7d6, 0xb8e41473, 0x3e7066dd, 0xf52cb578, + 0x0f580a6c, 0xc404d9c9, 0x4290ab67, 0x89cc78c2, 0x94c9487a, 0x5f959bdf, 0xd901e971, 0x125d3ad4, 0xe30b8801, 0x28575ba4, 0xaec3290a, 0x659ffaaf, 0x789aca17, 0xb3c619b2, 0x35526b1c, 0xfe0eb8b9, + 0x0c8e08f7, 0xc7d2db52, 0x4146a9fc, 0x8a1a7a59, 0x971f4ae1, 0x5c439944, 0xdad7ebea, 0x118b384f, 0xe0dd8a9a, 0x2b81593f, 0xad152b91, 0x6649f834, 0x7b4cc88c, 0xb0101b29, 0x36846987, 0xfdd8ba22, + 0x08f40f5a, 0xc3a8dcff, 0x453cae51, 0x8e607df4, 0x93654d4c, 0x58399ee9, 0xdeadec47, 0x15f13fe2, 0xe4a78d37, 0x2ffb5e92, 0xa96f2c3c, 0x6233ff99, 0x7f36cf21, 0xb46a1c84, 0x32fe6e2a, 0xf9a2bd8f, + 0x0b220dc1, 0xc07ede64, 0x46eaacca, 0x8db67f6f, 0x90b34fd7, 0x5bef9c72, 0xdd7beedc, 0x16273d79, 0xe7718fac, 0x2c2d5c09, 0xaab92ea7, 0x61e5fd02, 0x7ce0cdba, 0xb7bc1e1f, 0x31286cb1, 0xfa74bf14, + 0x1eb014d8, 0xd5ecc77d, 0x5378b5d3, 0x98246676, 0x852156ce, 0x4e7d856b, 0xc8e9f7c5, 0x03b52460, 0xf2e396b5, 0x39bf4510, 0xbf2b37be, 0x7477e41b, 0x6972d4a3, 0xa22e0706, 0x24ba75a8, 0xefe6a60d, + 0x1d661643, 0xd63ac5e6, 0x50aeb748, 0x9bf264ed, 0x86f75455, 0x4dab87f0, 0xcb3ff55e, 0x006326fb, 0xf135942e, 0x3a69478b, 0xbcfd3525, 0x77a1e680, 0x6aa4d638, 0xa1f8059d, 0x276c7733, 0xec30a496, + 0x191c11ee, 0xd240c24b, 0x54d4b0e5, 0x9f886340, 0x828d53f8, 0x49d1805d, 0xcf45f2f3, 0x04192156, 0xf54f9383, 0x3e134026, 0xb8873288, 0x73dbe12d, 0x6eded195, 0xa5820230, 0x2316709e, 0xe84aa33b, + 0x1aca1375, 0xd196c0d0, 0x5702b27e, 0x9c5e61db, 0x815b5163, 0x4a0782c6, 0xcc93f068, 0x07cf23cd, 0xf6999118, 0x3dc542bd, 0xbb513013, 0x700de3b6, 0x6d08d30e, 0xa65400ab, 0x20c07205, 0xeb9ca1a0, + 0x11e81eb4, 0xdab4cd11, 0x5c20bfbf, 0x977c6c1a, 0x8a795ca2, 0x41258f07, 0xc7b1fda9, 0x0ced2e0c, 0xfdbb9cd9, 0x36e74f7c, 0xb0733dd2, 0x7b2fee77, 0x662adecf, 0xad760d6a, 0x2be27fc4, 0xe0beac61, + 0x123e1c2f, 0xd962cf8a, 0x5ff6bd24, 0x94aa6e81, 0x89af5e39, 0x42f38d9c, 0xc467ff32, 0x0f3b2c97, 0xfe6d9e42, 0x35314de7, 0xb3a53f49, 0x78f9ecec, 0x65fcdc54, 0xaea00ff1, 0x28347d5f, 0xe368aefa, + 0x16441b82, 0xdd18c827, 0x5b8cba89, 0x90d0692c, 0x8dd55994, 0x46898a31, 0xc01df89f, 0x0b412b3a, 0xfa1799ef, 0x314b4a4a, 0xb7df38e4, 0x7c83eb41, 0x6186dbf9, 0xaada085c, 0x2c4e7af2, 0xe712a957, + 0x15921919, 0xdececabc, 0x585ab812, 0x93066bb7, 0x8e035b0f, 0x455f88aa, 0xc3cbfa04, 0x089729a1, 0xf9c19b74, 0x329d48d1, 0xb4093a7f, 0x7f55e9da, 0x6250d962, 0xa90c0ac7, 0x2f987869, 0xe4c4abcc + }, + { + 0x00000000, 0xa6770bb4, 0x979f1129, 0x31e81a9d, 0xf44f2413, 0x52382fa7, 0x63d0353a, 0xc5a73e8e, 0x33ef4e67, 0x959845d3, 0xa4705f4e, 0x020754fa, 0xc7a06a74, 0x61d761c0, 0x503f7b5d, 0xf64870e9, + 0x67de9cce, 0xc1a9977a, 0xf0418de7, 0x56368653, 0x9391b8dd, 0x35e6b369, 0x040ea9f4, 0xa279a240, 0x5431d2a9, 0xf246d91d, 0xc3aec380, 0x65d9c834, 0xa07ef6ba, 0x0609fd0e, 0x37e1e793, 0x9196ec27, + 0xcfbd399c, 0x69ca3228, 0x582228b5, 0xfe552301, 0x3bf21d8f, 0x9d85163b, 0xac6d0ca6, 0x0a1a0712, 0xfc5277fb, 0x5a257c4f, 0x6bcd66d2, 0xcdba6d66, 0x081d53e8, 0xae6a585c, 0x9f8242c1, 0x39f54975, + 0xa863a552, 0x0e14aee6, 0x3ffcb47b, 0x998bbfcf, 0x5c2c8141, 0xfa5b8af5, 0xcbb39068, 0x6dc49bdc, 0x9b8ceb35, 0x3dfbe081, 0x0c13fa1c, 0xaa64f1a8, 0x6fc3cf26, 0xc9b4c492, 0xf85cde0f, 0x5e2bd5bb, + 0x440b7579, 0xe27c7ecd, 0xd3946450, 0x75e36fe4, 0xb044516a, 0x16335ade, 0x27db4043, 0x81ac4bf7, 0x77e43b1e, 0xd19330aa, 0xe07b2a37, 0x460c2183, 0x83ab1f0d, 0x25dc14b9, 0x14340e24, 0xb2430590, + 0x23d5e9b7, 0x85a2e203, 0xb44af89e, 0x123df32a, 0xd79acda4, 0x71edc610, 0x4005dc8d, 0xe672d739, 0x103aa7d0, 0xb64dac64, 0x87a5b6f9, 0x21d2bd4d, 0xe47583c3, 0x42028877, 0x73ea92ea, 0xd59d995e, + 0x8bb64ce5, 0x2dc14751, 0x1c295dcc, 0xba5e5678, 0x7ff968f6, 0xd98e6342, 0xe86679df, 0x4e11726b, 0xb8590282, 0x1e2e0936, 0x2fc613ab, 0x89b1181f, 0x4c162691, 0xea612d25, 0xdb8937b8, 0x7dfe3c0c, + 0xec68d02b, 0x4a1fdb9f, 0x7bf7c102, 0xdd80cab6, 0x1827f438, 0xbe50ff8c, 0x8fb8e511, 0x29cfeea5, 0xdf879e4c, 0x79f095f8, 0x48188f65, 0xee6f84d1, 0x2bc8ba5f, 0x8dbfb1eb, 0xbc57ab76, 0x1a20a0c2, + 0x8816eaf2, 0x2e61e146, 0x1f89fbdb, 0xb9fef06f, 0x7c59cee1, 0xda2ec555, 0xebc6dfc8, 0x4db1d47c, 0xbbf9a495, 0x1d8eaf21, 0x2c66b5bc, 0x8a11be08, 0x4fb68086, 0xe9c18b32, 0xd82991af, 0x7e5e9a1b, + 0xefc8763c, 0x49bf7d88, 0x78576715, 0xde206ca1, 0x1b87522f, 0xbdf0599b, 0x8c184306, 0x2a6f48b2, 0xdc27385b, 0x7a5033ef, 0x4bb82972, 0xedcf22c6, 0x28681c48, 0x8e1f17fc, 0xbff70d61, 0x198006d5, + 0x47abd36e, 0xe1dcd8da, 0xd034c247, 0x7643c9f3, 0xb3e4f77d, 0x1593fcc9, 0x247be654, 0x820cede0, 0x74449d09, 0xd23396bd, 0xe3db8c20, 0x45ac8794, 0x800bb91a, 0x267cb2ae, 0x1794a833, 0xb1e3a387, + 0x20754fa0, 0x86024414, 0xb7ea5e89, 0x119d553d, 0xd43a6bb3, 0x724d6007, 0x43a57a9a, 0xe5d2712e, 0x139a01c7, 0xb5ed0a73, 0x840510ee, 0x22721b5a, 0xe7d525d4, 0x41a22e60, 0x704a34fd, 0xd63d3f49, + 0xcc1d9f8b, 0x6a6a943f, 0x5b828ea2, 0xfdf58516, 0x3852bb98, 0x9e25b02c, 0xafcdaab1, 0x09baa105, 0xfff2d1ec, 0x5985da58, 0x686dc0c5, 0xce1acb71, 0x0bbdf5ff, 0xadcafe4b, 0x9c22e4d6, 0x3a55ef62, + 0xabc30345, 0x0db408f1, 0x3c5c126c, 0x9a2b19d8, 0x5f8c2756, 0xf9fb2ce2, 0xc813367f, 0x6e643dcb, 0x982c4d22, 0x3e5b4696, 0x0fb35c0b, 0xa9c457bf, 0x6c636931, 0xca146285, 0xfbfc7818, 0x5d8b73ac, + 0x03a0a617, 0xa5d7ada3, 0x943fb73e, 0x3248bc8a, 0xf7ef8204, 0x519889b0, 0x6070932d, 0xc6079899, 0x304fe870, 0x9638e3c4, 0xa7d0f959, 0x01a7f2ed, 0xc400cc63, 0x6277c7d7, 0x539fdd4a, 0xf5e8d6fe, + 0x647e3ad9, 0xc209316d, 0xf3e12bf0, 0x55962044, 0x90311eca, 0x3646157e, 0x07ae0fe3, 0xa1d90457, 0x579174be, 0xf1e67f0a, 0xc00e6597, 0x66796e23, 0xa3de50ad, 0x05a95b19, 0x34414184, 0x92364a30 + }, + { + 0x00000000, 0xccaa009e, 0x4225077d, 0x8e8f07e3, 0x844a0efa, 0x48e00e64, 0xc66f0987, 0x0ac50919, 0xd3e51bb5, 0x1f4f1b2b, 0x91c01cc8, 0x5d6a1c56, 0x57af154f, 0x9b0515d1, 0x158a1232, 0xd92012ac, + 0x7cbb312b, 0xb01131b5, 0x3e9e3656, 0xf23436c8, 0xf8f13fd1, 0x345b3f4f, 0xbad438ac, 0x767e3832, 0xaf5e2a9e, 0x63f42a00, 0xed7b2de3, 0x21d12d7d, 0x2b142464, 0xe7be24fa, 0x69312319, 0xa59b2387, + 0xf9766256, 0x35dc62c8, 0xbb53652b, 0x77f965b5, 0x7d3c6cac, 0xb1966c32, 0x3f196bd1, 0xf3b36b4f, 0x2a9379e3, 0xe639797d, 0x68b67e9e, 0xa41c7e00, 0xaed97719, 0x62737787, 0xecfc7064, 0x205670fa, + 0x85cd537d, 0x496753e3, 0xc7e85400, 0x0b42549e, 0x01875d87, 0xcd2d5d19, 0x43a25afa, 0x8f085a64, 0x562848c8, 0x9a824856, 0x140d4fb5, 0xd8a74f2b, 0xd2624632, 0x1ec846ac, 0x9047414f, 0x5ced41d1, + 0x299dc2ed, 0xe537c273, 0x6bb8c590, 0xa712c50e, 0xadd7cc17, 0x617dcc89, 0xeff2cb6a, 0x2358cbf4, 0xfa78d958, 0x36d2d9c6, 0xb85dde25, 0x74f7debb, 0x7e32d7a2, 0xb298d73c, 0x3c17d0df, 0xf0bdd041, + 0x5526f3c6, 0x998cf358, 0x1703f4bb, 0xdba9f425, 0xd16cfd3c, 0x1dc6fda2, 0x9349fa41, 0x5fe3fadf, 0x86c3e873, 0x4a69e8ed, 0xc4e6ef0e, 0x084cef90, 0x0289e689, 0xce23e617, 0x40ace1f4, 0x8c06e16a, + 0xd0eba0bb, 0x1c41a025, 0x92cea7c6, 0x5e64a758, 0x54a1ae41, 0x980baedf, 0x1684a93c, 0xda2ea9a2, 0x030ebb0e, 0xcfa4bb90, 0x412bbc73, 0x8d81bced, 0x8744b5f4, 0x4beeb56a, 0xc561b289, 0x09cbb217, + 0xac509190, 0x60fa910e, 0xee7596ed, 0x22df9673, 0x281a9f6a, 0xe4b09ff4, 0x6a3f9817, 0xa6959889, 0x7fb58a25, 0xb31f8abb, 0x3d908d58, 0xf13a8dc6, 0xfbff84df, 0x37558441, 0xb9da83a2, 0x7570833c, + 0x533b85da, 0x9f918544, 0x111e82a7, 0xddb48239, 0xd7718b20, 0x1bdb8bbe, 0x95548c5d, 0x59fe8cc3, 0x80de9e6f, 0x4c749ef1, 0xc2fb9912, 0x0e51998c, 0x04949095, 0xc83e900b, 0x46b197e8, 0x8a1b9776, + 0x2f80b4f1, 0xe32ab46f, 0x6da5b38c, 0xa10fb312, 0xabcaba0b, 0x6760ba95, 0xe9efbd76, 0x2545bde8, 0xfc65af44, 0x30cfafda, 0xbe40a839, 0x72eaa8a7, 0x782fa1be, 0xb485a120, 0x3a0aa6c3, 0xf6a0a65d, + 0xaa4de78c, 0x66e7e712, 0xe868e0f1, 0x24c2e06f, 0x2e07e976, 0xe2ade9e8, 0x6c22ee0b, 0xa088ee95, 0x79a8fc39, 0xb502fca7, 0x3b8dfb44, 0xf727fbda, 0xfde2f2c3, 0x3148f25d, 0xbfc7f5be, 0x736df520, + 0xd6f6d6a7, 0x1a5cd639, 0x94d3d1da, 0x5879d144, 0x52bcd85d, 0x9e16d8c3, 0x1099df20, 0xdc33dfbe, 0x0513cd12, 0xc9b9cd8c, 0x4736ca6f, 0x8b9ccaf1, 0x8159c3e8, 0x4df3c376, 0xc37cc495, 0x0fd6c40b, + 0x7aa64737, 0xb60c47a9, 0x3883404a, 0xf42940d4, 0xfeec49cd, 0x32464953, 0xbcc94eb0, 0x70634e2e, 0xa9435c82, 0x65e95c1c, 0xeb665bff, 0x27cc5b61, 0x2d095278, 0xe1a352e6, 0x6f2c5505, 0xa386559b, + 0x061d761c, 0xcab77682, 0x44387161, 0x889271ff, 0x825778e6, 0x4efd7878, 0xc0727f9b, 0x0cd87f05, 0xd5f86da9, 0x19526d37, 0x97dd6ad4, 0x5b776a4a, 0x51b26353, 0x9d1863cd, 0x1397642e, 0xdf3d64b0, + 0x83d02561, 0x4f7a25ff, 0xc1f5221c, 0x0d5f2282, 0x079a2b9b, 0xcb302b05, 0x45bf2ce6, 0x89152c78, 0x50353ed4, 0x9c9f3e4a, 0x121039a9, 0xdeba3937, 0xd47f302e, 0x18d530b0, 0x965a3753, 0x5af037cd, + 0xff6b144a, 0x33c114d4, 0xbd4e1337, 0x71e413a9, 0x7b211ab0, 0xb78b1a2e, 0x39041dcd, 0xf5ae1d53, 0x2c8e0fff, 0xe0240f61, 0x6eab0882, 0xa201081c, 0xa8c40105, 0x646e019b, 0xeae10678, 0x264b06e6 + } + }; -static uint32_t CRCTablesSB8[8][256] = { + template + inline constexpr T align(const T ptr, int64_t alignment) { - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, - 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, - 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, - 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, - 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, - 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, - 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, - 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, - 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, - 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, - 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d - }, - { - 0x00000000, 0x191b3141, 0x32366282, 0x2b2d53c3, 0x646cc504, 0x7d77f445, 0x565aa786, 0x4f4196c7, 0xc8d98a08, 0xd1c2bb49, 0xfaefe88a, 0xe3f4d9cb, 0xacb54f0c, 0xb5ae7e4d, 0x9e832d8e, 0x87981ccf, - 0x4ac21251, 0x53d92310, 0x78f470d3, 0x61ef4192, 0x2eaed755, 0x37b5e614, 0x1c98b5d7, 0x05838496, 0x821b9859, 0x9b00a918, 0xb02dfadb, 0xa936cb9a, 0xe6775d5d, 0xff6c6c1c, 0xd4413fdf, 0xcd5a0e9e, - 0x958424a2, 0x8c9f15e3, 0xa7b24620, 0xbea97761, 0xf1e8e1a6, 0xe8f3d0e7, 0xc3de8324, 0xdac5b265, 0x5d5daeaa, 0x44469feb, 0x6f6bcc28, 0x7670fd69, 0x39316bae, 0x202a5aef, 0x0b07092c, 0x121c386d, - 0xdf4636f3, 0xc65d07b2, 0xed705471, 0xf46b6530, 0xbb2af3f7, 0xa231c2b6, 0x891c9175, 0x9007a034, 0x179fbcfb, 0x0e848dba, 0x25a9de79, 0x3cb2ef38, 0x73f379ff, 0x6ae848be, 0x41c51b7d, 0x58de2a3c, - 0xf0794f05, 0xe9627e44, 0xc24f2d87, 0xdb541cc6, 0x94158a01, 0x8d0ebb40, 0xa623e883, 0xbf38d9c2, 0x38a0c50d, 0x21bbf44c, 0x0a96a78f, 0x138d96ce, 0x5ccc0009, 0x45d73148, 0x6efa628b, 0x77e153ca, - 0xbabb5d54, 0xa3a06c15, 0x888d3fd6, 0x91960e97, 0xded79850, 0xc7cca911, 0xece1fad2, 0xf5facb93, 0x7262d75c, 0x6b79e61d, 0x4054b5de, 0x594f849f, 0x160e1258, 0x0f152319, 0x243870da, 0x3d23419b, - 0x65fd6ba7, 0x7ce65ae6, 0x57cb0925, 0x4ed03864, 0x0191aea3, 0x188a9fe2, 0x33a7cc21, 0x2abcfd60, 0xad24e1af, 0xb43fd0ee, 0x9f12832d, 0x8609b26c, 0xc94824ab, 0xd05315ea, 0xfb7e4629, 0xe2657768, - 0x2f3f79f6, 0x362448b7, 0x1d091b74, 0x04122a35, 0x4b53bcf2, 0x52488db3, 0x7965de70, 0x607eef31, 0xe7e6f3fe, 0xfefdc2bf, 0xd5d0917c, 0xcccba03d, 0x838a36fa, 0x9a9107bb, 0xb1bc5478, 0xa8a76539, - 0x3b83984b, 0x2298a90a, 0x09b5fac9, 0x10aecb88, 0x5fef5d4f, 0x46f46c0e, 0x6dd93fcd, 0x74c20e8c, 0xf35a1243, 0xea412302, 0xc16c70c1, 0xd8774180, 0x9736d747, 0x8e2de606, 0xa500b5c5, 0xbc1b8484, - 0x71418a1a, 0x685abb5b, 0x4377e898, 0x5a6cd9d9, 0x152d4f1e, 0x0c367e5f, 0x271b2d9c, 0x3e001cdd, 0xb9980012, 0xa0833153, 0x8bae6290, 0x92b553d1, 0xddf4c516, 0xc4eff457, 0xefc2a794, 0xf6d996d5, - 0xae07bce9, 0xb71c8da8, 0x9c31de6b, 0x852aef2a, 0xca6b79ed, 0xd37048ac, 0xf85d1b6f, 0xe1462a2e, 0x66de36e1, 0x7fc507a0, 0x54e85463, 0x4df36522, 0x02b2f3e5, 0x1ba9c2a4, 0x30849167, 0x299fa026, - 0xe4c5aeb8, 0xfdde9ff9, 0xd6f3cc3a, 0xcfe8fd7b, 0x80a96bbc, 0x99b25afd, 0xb29f093e, 0xab84387f, 0x2c1c24b0, 0x350715f1, 0x1e2a4632, 0x07317773, 0x4870e1b4, 0x516bd0f5, 0x7a468336, 0x635db277, - 0xcbfad74e, 0xd2e1e60f, 0xf9ccb5cc, 0xe0d7848d, 0xaf96124a, 0xb68d230b, 0x9da070c8, 0x84bb4189, 0x03235d46, 0x1a386c07, 0x31153fc4, 0x280e0e85, 0x674f9842, 0x7e54a903, 0x5579fac0, 0x4c62cb81, - 0x8138c51f, 0x9823f45e, 0xb30ea79d, 0xaa1596dc, 0xe554001b, 0xfc4f315a, 0xd7626299, 0xce7953d8, 0x49e14f17, 0x50fa7e56, 0x7bd72d95, 0x62cc1cd4, 0x2d8d8a13, 0x3496bb52, 0x1fbbe891, 0x06a0d9d0, - 0x5e7ef3ec, 0x4765c2ad, 0x6c48916e, 0x7553a02f, 0x3a1236e8, 0x230907a9, 0x0824546a, 0x113f652b, 0x96a779e4, 0x8fbc48a5, 0xa4911b66, 0xbd8a2a27, 0xf2cbbce0, 0xebd08da1, 0xc0fdde62, 0xd9e6ef23, - 0x14bce1bd, 0x0da7d0fc, 0x268a833f, 0x3f91b27e, 0x70d024b9, 0x69cb15f8, 0x42e6463b, 0x5bfd777a, 0xdc656bb5, 0xc57e5af4, 0xee530937, 0xf7483876, 0xb809aeb1, 0xa1129ff0, 0x8a3fcc33, 0x9324fd72 - }, - { - 0x00000000, 0x01c26a37, 0x0384d46e, 0x0246be59, 0x0709a8dc, 0x06cbc2eb, 0x048d7cb2, 0x054f1685, 0x0e1351b8, 0x0fd13b8f, 0x0d9785d6, 0x0c55efe1, 0x091af964, 0x08d89353, 0x0a9e2d0a, 0x0b5c473d, - 0x1c26a370, 0x1de4c947, 0x1fa2771e, 0x1e601d29, 0x1b2f0bac, 0x1aed619b, 0x18abdfc2, 0x1969b5f5, 0x1235f2c8, 0x13f798ff, 0x11b126a6, 0x10734c91, 0x153c5a14, 0x14fe3023, 0x16b88e7a, 0x177ae44d, - 0x384d46e0, 0x398f2cd7, 0x3bc9928e, 0x3a0bf8b9, 0x3f44ee3c, 0x3e86840b, 0x3cc03a52, 0x3d025065, 0x365e1758, 0x379c7d6f, 0x35dac336, 0x3418a901, 0x3157bf84, 0x3095d5b3, 0x32d36bea, 0x331101dd, - 0x246be590, 0x25a98fa7, 0x27ef31fe, 0x262d5bc9, 0x23624d4c, 0x22a0277b, 0x20e69922, 0x2124f315, 0x2a78b428, 0x2bbade1f, 0x29fc6046, 0x283e0a71, 0x2d711cf4, 0x2cb376c3, 0x2ef5c89a, 0x2f37a2ad, - 0x709a8dc0, 0x7158e7f7, 0x731e59ae, 0x72dc3399, 0x7793251c, 0x76514f2b, 0x7417f172, 0x75d59b45, 0x7e89dc78, 0x7f4bb64f, 0x7d0d0816, 0x7ccf6221, 0x798074a4, 0x78421e93, 0x7a04a0ca, 0x7bc6cafd, - 0x6cbc2eb0, 0x6d7e4487, 0x6f38fade, 0x6efa90e9, 0x6bb5866c, 0x6a77ec5b, 0x68315202, 0x69f33835, 0x62af7f08, 0x636d153f, 0x612bab66, 0x60e9c151, 0x65a6d7d4, 0x6464bde3, 0x662203ba, 0x67e0698d, - 0x48d7cb20, 0x4915a117, 0x4b531f4e, 0x4a917579, 0x4fde63fc, 0x4e1c09cb, 0x4c5ab792, 0x4d98dda5, 0x46c49a98, 0x4706f0af, 0x45404ef6, 0x448224c1, 0x41cd3244, 0x400f5873, 0x4249e62a, 0x438b8c1d, - 0x54f16850, 0x55330267, 0x5775bc3e, 0x56b7d609, 0x53f8c08c, 0x523aaabb, 0x507c14e2, 0x51be7ed5, 0x5ae239e8, 0x5b2053df, 0x5966ed86, 0x58a487b1, 0x5deb9134, 0x5c29fb03, 0x5e6f455a, 0x5fad2f6d, - 0xe1351b80, 0xe0f771b7, 0xe2b1cfee, 0xe373a5d9, 0xe63cb35c, 0xe7fed96b, 0xe5b86732, 0xe47a0d05, 0xef264a38, 0xeee4200f, 0xeca29e56, 0xed60f461, 0xe82fe2e4, 0xe9ed88d3, 0xebab368a, 0xea695cbd, - 0xfd13b8f0, 0xfcd1d2c7, 0xfe976c9e, 0xff5506a9, 0xfa1a102c, 0xfbd87a1b, 0xf99ec442, 0xf85cae75, 0xf300e948, 0xf2c2837f, 0xf0843d26, 0xf1465711, 0xf4094194, 0xf5cb2ba3, 0xf78d95fa, 0xf64fffcd, - 0xd9785d60, 0xd8ba3757, 0xdafc890e, 0xdb3ee339, 0xde71f5bc, 0xdfb39f8b, 0xddf521d2, 0xdc374be5, 0xd76b0cd8, 0xd6a966ef, 0xd4efd8b6, 0xd52db281, 0xd062a404, 0xd1a0ce33, 0xd3e6706a, 0xd2241a5d, - 0xc55efe10, 0xc49c9427, 0xc6da2a7e, 0xc7184049, 0xc25756cc, 0xc3953cfb, 0xc1d382a2, 0xc011e895, 0xcb4dafa8, 0xca8fc59f, 0xc8c97bc6, 0xc90b11f1, 0xcc440774, 0xcd866d43, 0xcfc0d31a, 0xce02b92d, - 0x91af9640, 0x906dfc77, 0x922b422e, 0x93e92819, 0x96a63e9c, 0x976454ab, 0x9522eaf2, 0x94e080c5, 0x9fbcc7f8, 0x9e7eadcf, 0x9c381396, 0x9dfa79a1, 0x98b56f24, 0x99770513, 0x9b31bb4a, 0x9af3d17d, - 0x8d893530, 0x8c4b5f07, 0x8e0de15e, 0x8fcf8b69, 0x8a809dec, 0x8b42f7db, 0x89044982, 0x88c623b5, 0x839a6488, 0x82580ebf, 0x801eb0e6, 0x81dcdad1, 0x8493cc54, 0x8551a663, 0x8717183a, 0x86d5720d, - 0xa9e2d0a0, 0xa820ba97, 0xaa6604ce, 0xaba46ef9, 0xaeeb787c, 0xaf29124b, 0xad6fac12, 0xacadc625, 0xa7f18118, 0xa633eb2f, 0xa4755576, 0xa5b73f41, 0xa0f829c4, 0xa13a43f3, 0xa37cfdaa, 0xa2be979d, - 0xb5c473d0, 0xb40619e7, 0xb640a7be, 0xb782cd89, 0xb2cddb0c, 0xb30fb13b, 0xb1490f62, 0xb08b6555, 0xbbd72268, 0xba15485f, 0xb853f606, 0xb9919c31, 0xbcde8ab4, 0xbd1ce083, 0xbf5a5eda, 0xbe9834ed - }, - { - 0x00000000, 0xb8bc6765, 0xaa09c88b, 0x12b5afee, 0x8f629757, 0x37def032, 0x256b5fdc, 0x9dd738b9, 0xc5b428ef, 0x7d084f8a, 0x6fbde064, 0xd7018701, 0x4ad6bfb8, 0xf26ad8dd, 0xe0df7733, 0x58631056, - 0x5019579f, 0xe8a530fa, 0xfa109f14, 0x42acf871, 0xdf7bc0c8, 0x67c7a7ad, 0x75720843, 0xcdce6f26, 0x95ad7f70, 0x2d111815, 0x3fa4b7fb, 0x8718d09e, 0x1acfe827, 0xa2738f42, 0xb0c620ac, 0x087a47c9, - 0xa032af3e, 0x188ec85b, 0x0a3b67b5, 0xb28700d0, 0x2f503869, 0x97ec5f0c, 0x8559f0e2, 0x3de59787, 0x658687d1, 0xdd3ae0b4, 0xcf8f4f5a, 0x7733283f, 0xeae41086, 0x525877e3, 0x40edd80d, 0xf851bf68, - 0xf02bf8a1, 0x48979fc4, 0x5a22302a, 0xe29e574f, 0x7f496ff6, 0xc7f50893, 0xd540a77d, 0x6dfcc018, 0x359fd04e, 0x8d23b72b, 0x9f9618c5, 0x272a7fa0, 0xbafd4719, 0x0241207c, 0x10f48f92, 0xa848e8f7, - 0x9b14583d, 0x23a83f58, 0x311d90b6, 0x89a1f7d3, 0x1476cf6a, 0xaccaa80f, 0xbe7f07e1, 0x06c36084, 0x5ea070d2, 0xe61c17b7, 0xf4a9b859, 0x4c15df3c, 0xd1c2e785, 0x697e80e0, 0x7bcb2f0e, 0xc377486b, - 0xcb0d0fa2, 0x73b168c7, 0x6104c729, 0xd9b8a04c, 0x446f98f5, 0xfcd3ff90, 0xee66507e, 0x56da371b, 0x0eb9274d, 0xb6054028, 0xa4b0efc6, 0x1c0c88a3, 0x81dbb01a, 0x3967d77f, 0x2bd27891, 0x936e1ff4, - 0x3b26f703, 0x839a9066, 0x912f3f88, 0x299358ed, 0xb4446054, 0x0cf80731, 0x1e4da8df, 0xa6f1cfba, 0xfe92dfec, 0x462eb889, 0x549b1767, 0xec277002, 0x71f048bb, 0xc94c2fde, 0xdbf98030, 0x6345e755, - 0x6b3fa09c, 0xd383c7f9, 0xc1366817, 0x798a0f72, 0xe45d37cb, 0x5ce150ae, 0x4e54ff40, 0xf6e89825, 0xae8b8873, 0x1637ef16, 0x048240f8, 0xbc3e279d, 0x21e91f24, 0x99557841, 0x8be0d7af, 0x335cb0ca, - 0xed59b63b, 0x55e5d15e, 0x47507eb0, 0xffec19d5, 0x623b216c, 0xda874609, 0xc832e9e7, 0x708e8e82, 0x28ed9ed4, 0x9051f9b1, 0x82e4565f, 0x3a58313a, 0xa78f0983, 0x1f336ee6, 0x0d86c108, 0xb53aa66d, - 0xbd40e1a4, 0x05fc86c1, 0x1749292f, 0xaff54e4a, 0x322276f3, 0x8a9e1196, 0x982bbe78, 0x2097d91d, 0x78f4c94b, 0xc048ae2e, 0xd2fd01c0, 0x6a4166a5, 0xf7965e1c, 0x4f2a3979, 0x5d9f9697, 0xe523f1f2, - 0x4d6b1905, 0xf5d77e60, 0xe762d18e, 0x5fdeb6eb, 0xc2098e52, 0x7ab5e937, 0x680046d9, 0xd0bc21bc, 0x88df31ea, 0x3063568f, 0x22d6f961, 0x9a6a9e04, 0x07bda6bd, 0xbf01c1d8, 0xadb46e36, 0x15080953, - 0x1d724e9a, 0xa5ce29ff, 0xb77b8611, 0x0fc7e174, 0x9210d9cd, 0x2aacbea8, 0x38191146, 0x80a57623, 0xd8c66675, 0x607a0110, 0x72cfaefe, 0xca73c99b, 0x57a4f122, 0xef189647, 0xfdad39a9, 0x45115ecc, - 0x764dee06, 0xcef18963, 0xdc44268d, 0x64f841e8, 0xf92f7951, 0x41931e34, 0x5326b1da, 0xeb9ad6bf, 0xb3f9c6e9, 0x0b45a18c, 0x19f00e62, 0xa14c6907, 0x3c9b51be, 0x842736db, 0x96929935, 0x2e2efe50, - 0x2654b999, 0x9ee8defc, 0x8c5d7112, 0x34e11677, 0xa9362ece, 0x118a49ab, 0x033fe645, 0xbb838120, 0xe3e09176, 0x5b5cf613, 0x49e959fd, 0xf1553e98, 0x6c820621, 0xd43e6144, 0xc68bceaa, 0x7e37a9cf, - 0xd67f4138, 0x6ec3265d, 0x7c7689b3, 0xc4caeed6, 0x591dd66f, 0xe1a1b10a, 0xf3141ee4, 0x4ba87981, 0x13cb69d7, 0xab770eb2, 0xb9c2a15c, 0x017ec639, 0x9ca9fe80, 0x241599e5, 0x36a0360b, 0x8e1c516e, - 0x866616a7, 0x3eda71c2, 0x2c6fde2c, 0x94d3b949, 0x090481f0, 0xb1b8e695, 0xa30d497b, 0x1bb12e1e, 0x43d23e48, 0xfb6e592d, 0xe9dbf6c3, 0x516791a6, 0xccb0a91f, 0x740cce7a, 0x66b96194, 0xde0506f1 - }, - { - 0x00000000, 0x3d6029b0, 0x7ac05360, 0x47a07ad0, 0xf580a6c0, 0xc8e08f70, 0x8f40f5a0, 0xb220dc10, 0x30704bc1, 0x0d106271, 0x4ab018a1, 0x77d03111, 0xc5f0ed01, 0xf890c4b1, 0xbf30be61, 0x825097d1, - 0x60e09782, 0x5d80be32, 0x1a20c4e2, 0x2740ed52, 0x95603142, 0xa80018f2, 0xefa06222, 0xd2c04b92, 0x5090dc43, 0x6df0f5f3, 0x2a508f23, 0x1730a693, 0xa5107a83, 0x98705333, 0xdfd029e3, 0xe2b00053, - 0xc1c12f04, 0xfca106b4, 0xbb017c64, 0x866155d4, 0x344189c4, 0x0921a074, 0x4e81daa4, 0x73e1f314, 0xf1b164c5, 0xccd14d75, 0x8b7137a5, 0xb6111e15, 0x0431c205, 0x3951ebb5, 0x7ef19165, 0x4391b8d5, - 0xa121b886, 0x9c419136, 0xdbe1ebe6, 0xe681c256, 0x54a11e46, 0x69c137f6, 0x2e614d26, 0x13016496, 0x9151f347, 0xac31daf7, 0xeb91a027, 0xd6f18997, 0x64d15587, 0x59b17c37, 0x1e1106e7, 0x23712f57, - 0x58f35849, 0x659371f9, 0x22330b29, 0x1f532299, 0xad73fe89, 0x9013d739, 0xd7b3ade9, 0xead38459, 0x68831388, 0x55e33a38, 0x124340e8, 0x2f236958, 0x9d03b548, 0xa0639cf8, 0xe7c3e628, 0xdaa3cf98, - 0x3813cfcb, 0x0573e67b, 0x42d39cab, 0x7fb3b51b, 0xcd93690b, 0xf0f340bb, 0xb7533a6b, 0x8a3313db, 0x0863840a, 0x3503adba, 0x72a3d76a, 0x4fc3feda, 0xfde322ca, 0xc0830b7a, 0x872371aa, 0xba43581a, - 0x9932774d, 0xa4525efd, 0xe3f2242d, 0xde920d9d, 0x6cb2d18d, 0x51d2f83d, 0x167282ed, 0x2b12ab5d, 0xa9423c8c, 0x9422153c, 0xd3826fec, 0xeee2465c, 0x5cc29a4c, 0x61a2b3fc, 0x2602c92c, 0x1b62e09c, - 0xf9d2e0cf, 0xc4b2c97f, 0x8312b3af, 0xbe729a1f, 0x0c52460f, 0x31326fbf, 0x7692156f, 0x4bf23cdf, 0xc9a2ab0e, 0xf4c282be, 0xb362f86e, 0x8e02d1de, 0x3c220dce, 0x0142247e, 0x46e25eae, 0x7b82771e, - 0xb1e6b092, 0x8c869922, 0xcb26e3f2, 0xf646ca42, 0x44661652, 0x79063fe2, 0x3ea64532, 0x03c66c82, 0x8196fb53, 0xbcf6d2e3, 0xfb56a833, 0xc6368183, 0x74165d93, 0x49767423, 0x0ed60ef3, 0x33b62743, - 0xd1062710, 0xec660ea0, 0xabc67470, 0x96a65dc0, 0x248681d0, 0x19e6a860, 0x5e46d2b0, 0x6326fb00, 0xe1766cd1, 0xdc164561, 0x9bb63fb1, 0xa6d61601, 0x14f6ca11, 0x2996e3a1, 0x6e369971, 0x5356b0c1, - 0x70279f96, 0x4d47b626, 0x0ae7ccf6, 0x3787e546, 0x85a73956, 0xb8c710e6, 0xff676a36, 0xc2074386, 0x4057d457, 0x7d37fde7, 0x3a978737, 0x07f7ae87, 0xb5d77297, 0x88b75b27, 0xcf1721f7, 0xf2770847, - 0x10c70814, 0x2da721a4, 0x6a075b74, 0x576772c4, 0xe547aed4, 0xd8278764, 0x9f87fdb4, 0xa2e7d404, 0x20b743d5, 0x1dd76a65, 0x5a7710b5, 0x67173905, 0xd537e515, 0xe857cca5, 0xaff7b675, 0x92979fc5, - 0xe915e8db, 0xd475c16b, 0x93d5bbbb, 0xaeb5920b, 0x1c954e1b, 0x21f567ab, 0x66551d7b, 0x5b3534cb, 0xd965a31a, 0xe4058aaa, 0xa3a5f07a, 0x9ec5d9ca, 0x2ce505da, 0x11852c6a, 0x562556ba, 0x6b457f0a, - 0x89f57f59, 0xb49556e9, 0xf3352c39, 0xce550589, 0x7c75d999, 0x4115f029, 0x06b58af9, 0x3bd5a349, 0xb9853498, 0x84e51d28, 0xc34567f8, 0xfe254e48, 0x4c059258, 0x7165bbe8, 0x36c5c138, 0x0ba5e888, - 0x28d4c7df, 0x15b4ee6f, 0x521494bf, 0x6f74bd0f, 0xdd54611f, 0xe03448af, 0xa794327f, 0x9af41bcf, 0x18a48c1e, 0x25c4a5ae, 0x6264df7e, 0x5f04f6ce, 0xed242ade, 0xd044036e, 0x97e479be, 0xaa84500e, - 0x4834505d, 0x755479ed, 0x32f4033d, 0x0f942a8d, 0xbdb4f69d, 0x80d4df2d, 0xc774a5fd, 0xfa148c4d, 0x78441b9c, 0x4524322c, 0x028448fc, 0x3fe4614c, 0x8dc4bd5c, 0xb0a494ec, 0xf704ee3c, 0xca64c78c - }, - { - 0x00000000, 0xcb5cd3a5, 0x4dc8a10b, 0x869472ae, 0x9b914216, 0x50cd91b3, 0xd659e31d, 0x1d0530b8, 0xec53826d, 0x270f51c8, 0xa19b2366, 0x6ac7f0c3, 0x77c2c07b, 0xbc9e13de, 0x3a0a6170, 0xf156b2d5, - 0x03d6029b, 0xc88ad13e, 0x4e1ea390, 0x85427035, 0x9847408d, 0x531b9328, 0xd58fe186, 0x1ed33223, 0xef8580f6, 0x24d95353, 0xa24d21fd, 0x6911f258, 0x7414c2e0, 0xbf481145, 0x39dc63eb, 0xf280b04e, - 0x07ac0536, 0xccf0d693, 0x4a64a43d, 0x81387798, 0x9c3d4720, 0x57619485, 0xd1f5e62b, 0x1aa9358e, 0xebff875b, 0x20a354fe, 0xa6372650, 0x6d6bf5f5, 0x706ec54d, 0xbb3216e8, 0x3da66446, 0xf6fab7e3, - 0x047a07ad, 0xcf26d408, 0x49b2a6a6, 0x82ee7503, 0x9feb45bb, 0x54b7961e, 0xd223e4b0, 0x197f3715, 0xe82985c0, 0x23755665, 0xa5e124cb, 0x6ebdf76e, 0x73b8c7d6, 0xb8e41473, 0x3e7066dd, 0xf52cb578, - 0x0f580a6c, 0xc404d9c9, 0x4290ab67, 0x89cc78c2, 0x94c9487a, 0x5f959bdf, 0xd901e971, 0x125d3ad4, 0xe30b8801, 0x28575ba4, 0xaec3290a, 0x659ffaaf, 0x789aca17, 0xb3c619b2, 0x35526b1c, 0xfe0eb8b9, - 0x0c8e08f7, 0xc7d2db52, 0x4146a9fc, 0x8a1a7a59, 0x971f4ae1, 0x5c439944, 0xdad7ebea, 0x118b384f, 0xe0dd8a9a, 0x2b81593f, 0xad152b91, 0x6649f834, 0x7b4cc88c, 0xb0101b29, 0x36846987, 0xfdd8ba22, - 0x08f40f5a, 0xc3a8dcff, 0x453cae51, 0x8e607df4, 0x93654d4c, 0x58399ee9, 0xdeadec47, 0x15f13fe2, 0xe4a78d37, 0x2ffb5e92, 0xa96f2c3c, 0x6233ff99, 0x7f36cf21, 0xb46a1c84, 0x32fe6e2a, 0xf9a2bd8f, - 0x0b220dc1, 0xc07ede64, 0x46eaacca, 0x8db67f6f, 0x90b34fd7, 0x5bef9c72, 0xdd7beedc, 0x16273d79, 0xe7718fac, 0x2c2d5c09, 0xaab92ea7, 0x61e5fd02, 0x7ce0cdba, 0xb7bc1e1f, 0x31286cb1, 0xfa74bf14, - 0x1eb014d8, 0xd5ecc77d, 0x5378b5d3, 0x98246676, 0x852156ce, 0x4e7d856b, 0xc8e9f7c5, 0x03b52460, 0xf2e396b5, 0x39bf4510, 0xbf2b37be, 0x7477e41b, 0x6972d4a3, 0xa22e0706, 0x24ba75a8, 0xefe6a60d, - 0x1d661643, 0xd63ac5e6, 0x50aeb748, 0x9bf264ed, 0x86f75455, 0x4dab87f0, 0xcb3ff55e, 0x006326fb, 0xf135942e, 0x3a69478b, 0xbcfd3525, 0x77a1e680, 0x6aa4d638, 0xa1f8059d, 0x276c7733, 0xec30a496, - 0x191c11ee, 0xd240c24b, 0x54d4b0e5, 0x9f886340, 0x828d53f8, 0x49d1805d, 0xcf45f2f3, 0x04192156, 0xf54f9383, 0x3e134026, 0xb8873288, 0x73dbe12d, 0x6eded195, 0xa5820230, 0x2316709e, 0xe84aa33b, - 0x1aca1375, 0xd196c0d0, 0x5702b27e, 0x9c5e61db, 0x815b5163, 0x4a0782c6, 0xcc93f068, 0x07cf23cd, 0xf6999118, 0x3dc542bd, 0xbb513013, 0x700de3b6, 0x6d08d30e, 0xa65400ab, 0x20c07205, 0xeb9ca1a0, - 0x11e81eb4, 0xdab4cd11, 0x5c20bfbf, 0x977c6c1a, 0x8a795ca2, 0x41258f07, 0xc7b1fda9, 0x0ced2e0c, 0xfdbb9cd9, 0x36e74f7c, 0xb0733dd2, 0x7b2fee77, 0x662adecf, 0xad760d6a, 0x2be27fc4, 0xe0beac61, - 0x123e1c2f, 0xd962cf8a, 0x5ff6bd24, 0x94aa6e81, 0x89af5e39, 0x42f38d9c, 0xc467ff32, 0x0f3b2c97, 0xfe6d9e42, 0x35314de7, 0xb3a53f49, 0x78f9ecec, 0x65fcdc54, 0xaea00ff1, 0x28347d5f, 0xe368aefa, - 0x16441b82, 0xdd18c827, 0x5b8cba89, 0x90d0692c, 0x8dd55994, 0x46898a31, 0xc01df89f, 0x0b412b3a, 0xfa1799ef, 0x314b4a4a, 0xb7df38e4, 0x7c83eb41, 0x6186dbf9, 0xaada085c, 0x2c4e7af2, 0xe712a957, - 0x15921919, 0xdececabc, 0x585ab812, 0x93066bb7, 0x8e035b0f, 0x455f88aa, 0xc3cbfa04, 0x089729a1, 0xf9c19b74, 0x329d48d1, 0xb4093a7f, 0x7f55e9da, 0x6250d962, 0xa90c0ac7, 0x2f987869, 0xe4c4abcc - }, - { - 0x00000000, 0xa6770bb4, 0x979f1129, 0x31e81a9d, 0xf44f2413, 0x52382fa7, 0x63d0353a, 0xc5a73e8e, 0x33ef4e67, 0x959845d3, 0xa4705f4e, 0x020754fa, 0xc7a06a74, 0x61d761c0, 0x503f7b5d, 0xf64870e9, - 0x67de9cce, 0xc1a9977a, 0xf0418de7, 0x56368653, 0x9391b8dd, 0x35e6b369, 0x040ea9f4, 0xa279a240, 0x5431d2a9, 0xf246d91d, 0xc3aec380, 0x65d9c834, 0xa07ef6ba, 0x0609fd0e, 0x37e1e793, 0x9196ec27, - 0xcfbd399c, 0x69ca3228, 0x582228b5, 0xfe552301, 0x3bf21d8f, 0x9d85163b, 0xac6d0ca6, 0x0a1a0712, 0xfc5277fb, 0x5a257c4f, 0x6bcd66d2, 0xcdba6d66, 0x081d53e8, 0xae6a585c, 0x9f8242c1, 0x39f54975, - 0xa863a552, 0x0e14aee6, 0x3ffcb47b, 0x998bbfcf, 0x5c2c8141, 0xfa5b8af5, 0xcbb39068, 0x6dc49bdc, 0x9b8ceb35, 0x3dfbe081, 0x0c13fa1c, 0xaa64f1a8, 0x6fc3cf26, 0xc9b4c492, 0xf85cde0f, 0x5e2bd5bb, - 0x440b7579, 0xe27c7ecd, 0xd3946450, 0x75e36fe4, 0xb044516a, 0x16335ade, 0x27db4043, 0x81ac4bf7, 0x77e43b1e, 0xd19330aa, 0xe07b2a37, 0x460c2183, 0x83ab1f0d, 0x25dc14b9, 0x14340e24, 0xb2430590, - 0x23d5e9b7, 0x85a2e203, 0xb44af89e, 0x123df32a, 0xd79acda4, 0x71edc610, 0x4005dc8d, 0xe672d739, 0x103aa7d0, 0xb64dac64, 0x87a5b6f9, 0x21d2bd4d, 0xe47583c3, 0x42028877, 0x73ea92ea, 0xd59d995e, - 0x8bb64ce5, 0x2dc14751, 0x1c295dcc, 0xba5e5678, 0x7ff968f6, 0xd98e6342, 0xe86679df, 0x4e11726b, 0xb8590282, 0x1e2e0936, 0x2fc613ab, 0x89b1181f, 0x4c162691, 0xea612d25, 0xdb8937b8, 0x7dfe3c0c, - 0xec68d02b, 0x4a1fdb9f, 0x7bf7c102, 0xdd80cab6, 0x1827f438, 0xbe50ff8c, 0x8fb8e511, 0x29cfeea5, 0xdf879e4c, 0x79f095f8, 0x48188f65, 0xee6f84d1, 0x2bc8ba5f, 0x8dbfb1eb, 0xbc57ab76, 0x1a20a0c2, - 0x8816eaf2, 0x2e61e146, 0x1f89fbdb, 0xb9fef06f, 0x7c59cee1, 0xda2ec555, 0xebc6dfc8, 0x4db1d47c, 0xbbf9a495, 0x1d8eaf21, 0x2c66b5bc, 0x8a11be08, 0x4fb68086, 0xe9c18b32, 0xd82991af, 0x7e5e9a1b, - 0xefc8763c, 0x49bf7d88, 0x78576715, 0xde206ca1, 0x1b87522f, 0xbdf0599b, 0x8c184306, 0x2a6f48b2, 0xdc27385b, 0x7a5033ef, 0x4bb82972, 0xedcf22c6, 0x28681c48, 0x8e1f17fc, 0xbff70d61, 0x198006d5, - 0x47abd36e, 0xe1dcd8da, 0xd034c247, 0x7643c9f3, 0xb3e4f77d, 0x1593fcc9, 0x247be654, 0x820cede0, 0x74449d09, 0xd23396bd, 0xe3db8c20, 0x45ac8794, 0x800bb91a, 0x267cb2ae, 0x1794a833, 0xb1e3a387, - 0x20754fa0, 0x86024414, 0xb7ea5e89, 0x119d553d, 0xd43a6bb3, 0x724d6007, 0x43a57a9a, 0xe5d2712e, 0x139a01c7, 0xb5ed0a73, 0x840510ee, 0x22721b5a, 0xe7d525d4, 0x41a22e60, 0x704a34fd, 0xd63d3f49, - 0xcc1d9f8b, 0x6a6a943f, 0x5b828ea2, 0xfdf58516, 0x3852bb98, 0x9e25b02c, 0xafcdaab1, 0x09baa105, 0xfff2d1ec, 0x5985da58, 0x686dc0c5, 0xce1acb71, 0x0bbdf5ff, 0xadcafe4b, 0x9c22e4d6, 0x3a55ef62, - 0xabc30345, 0x0db408f1, 0x3c5c126c, 0x9a2b19d8, 0x5f8c2756, 0xf9fb2ce2, 0xc813367f, 0x6e643dcb, 0x982c4d22, 0x3e5b4696, 0x0fb35c0b, 0xa9c457bf, 0x6c636931, 0xca146285, 0xfbfc7818, 0x5d8b73ac, - 0x03a0a617, 0xa5d7ada3, 0x943fb73e, 0x3248bc8a, 0xf7ef8204, 0x519889b0, 0x6070932d, 0xc6079899, 0x304fe870, 0x9638e3c4, 0xa7d0f959, 0x01a7f2ed, 0xc400cc63, 0x6277c7d7, 0x539fdd4a, 0xf5e8d6fe, - 0x647e3ad9, 0xc209316d, 0xf3e12bf0, 0x55962044, 0x90311eca, 0x3646157e, 0x07ae0fe3, 0xa1d90457, 0x579174be, 0xf1e67f0a, 0xc00e6597, 0x66796e23, 0xa3de50ad, 0x05a95b19, 0x34414184, 0x92364a30 - }, - { - 0x00000000, 0xccaa009e, 0x4225077d, 0x8e8f07e3, 0x844a0efa, 0x48e00e64, 0xc66f0987, 0x0ac50919, 0xd3e51bb5, 0x1f4f1b2b, 0x91c01cc8, 0x5d6a1c56, 0x57af154f, 0x9b0515d1, 0x158a1232, 0xd92012ac, - 0x7cbb312b, 0xb01131b5, 0x3e9e3656, 0xf23436c8, 0xf8f13fd1, 0x345b3f4f, 0xbad438ac, 0x767e3832, 0xaf5e2a9e, 0x63f42a00, 0xed7b2de3, 0x21d12d7d, 0x2b142464, 0xe7be24fa, 0x69312319, 0xa59b2387, - 0xf9766256, 0x35dc62c8, 0xbb53652b, 0x77f965b5, 0x7d3c6cac, 0xb1966c32, 0x3f196bd1, 0xf3b36b4f, 0x2a9379e3, 0xe639797d, 0x68b67e9e, 0xa41c7e00, 0xaed97719, 0x62737787, 0xecfc7064, 0x205670fa, - 0x85cd537d, 0x496753e3, 0xc7e85400, 0x0b42549e, 0x01875d87, 0xcd2d5d19, 0x43a25afa, 0x8f085a64, 0x562848c8, 0x9a824856, 0x140d4fb5, 0xd8a74f2b, 0xd2624632, 0x1ec846ac, 0x9047414f, 0x5ced41d1, - 0x299dc2ed, 0xe537c273, 0x6bb8c590, 0xa712c50e, 0xadd7cc17, 0x617dcc89, 0xeff2cb6a, 0x2358cbf4, 0xfa78d958, 0x36d2d9c6, 0xb85dde25, 0x74f7debb, 0x7e32d7a2, 0xb298d73c, 0x3c17d0df, 0xf0bdd041, - 0x5526f3c6, 0x998cf358, 0x1703f4bb, 0xdba9f425, 0xd16cfd3c, 0x1dc6fda2, 0x9349fa41, 0x5fe3fadf, 0x86c3e873, 0x4a69e8ed, 0xc4e6ef0e, 0x084cef90, 0x0289e689, 0xce23e617, 0x40ace1f4, 0x8c06e16a, - 0xd0eba0bb, 0x1c41a025, 0x92cea7c6, 0x5e64a758, 0x54a1ae41, 0x980baedf, 0x1684a93c, 0xda2ea9a2, 0x030ebb0e, 0xcfa4bb90, 0x412bbc73, 0x8d81bced, 0x8744b5f4, 0x4beeb56a, 0xc561b289, 0x09cbb217, - 0xac509190, 0x60fa910e, 0xee7596ed, 0x22df9673, 0x281a9f6a, 0xe4b09ff4, 0x6a3f9817, 0xa6959889, 0x7fb58a25, 0xb31f8abb, 0x3d908d58, 0xf13a8dc6, 0xfbff84df, 0x37558441, 0xb9da83a2, 0x7570833c, - 0x533b85da, 0x9f918544, 0x111e82a7, 0xddb48239, 0xd7718b20, 0x1bdb8bbe, 0x95548c5d, 0x59fe8cc3, 0x80de9e6f, 0x4c749ef1, 0xc2fb9912, 0x0e51998c, 0x04949095, 0xc83e900b, 0x46b197e8, 0x8a1b9776, - 0x2f80b4f1, 0xe32ab46f, 0x6da5b38c, 0xa10fb312, 0xabcaba0b, 0x6760ba95, 0xe9efbd76, 0x2545bde8, 0xfc65af44, 0x30cfafda, 0xbe40a839, 0x72eaa8a7, 0x782fa1be, 0xb485a120, 0x3a0aa6c3, 0xf6a0a65d, - 0xaa4de78c, 0x66e7e712, 0xe868e0f1, 0x24c2e06f, 0x2e07e976, 0xe2ade9e8, 0x6c22ee0b, 0xa088ee95, 0x79a8fc39, 0xb502fca7, 0x3b8dfb44, 0xf727fbda, 0xfde2f2c3, 0x3148f25d, 0xbfc7f5be, 0x736df520, - 0xd6f6d6a7, 0x1a5cd639, 0x94d3d1da, 0x5879d144, 0x52bcd85d, 0x9e16d8c3, 0x1099df20, 0xdc33dfbe, 0x0513cd12, 0xc9b9cd8c, 0x4736ca6f, 0x8b9ccaf1, 0x8159c3e8, 0x4df3c376, 0xc37cc495, 0x0fd6c40b, - 0x7aa64737, 0xb60c47a9, 0x3883404a, 0xf42940d4, 0xfeec49cd, 0x32464953, 0xbcc94eb0, 0x70634e2e, 0xa9435c82, 0x65e95c1c, 0xeb665bff, 0x27cc5b61, 0x2d095278, 0xe1a352e6, 0x6f2c5505, 0xa386559b, - 0x061d761c, 0xcab77682, 0x44387161, 0x889271ff, 0x825778e6, 0x4efd7878, 0xc0727f9b, 0x0cd87f05, 0xd5f86da9, 0x19526d37, 0x97dd6ad4, 0x5b776a4a, 0x51b26353, 0x9d1863cd, 0x1397642e, 0xdf3d64b0, - 0x83d02561, 0x4f7a25ff, 0xc1f5221c, 0x0d5f2282, 0x079a2b9b, 0xcb302b05, 0x45bf2ce6, 0x89152c78, 0x50353ed4, 0x9c9f3e4a, 0x121039a9, 0xdeba3937, 0xd47f302e, 0x18d530b0, 0x965a3753, 0x5af037cd, - 0xff6b144a, 0x33c114d4, 0xbd4e1337, 0x71e413a9, 0x7b211ab0, 0xb78b1a2e, 0x39041dcd, 0xf5ae1d53, 0x2c8e0fff, 0xe0240f61, 0x6eab0882, 0xa201081c, 0xa8c40105, 0x646e019b, 0xeae10678, 0x264b06e6 + return (T)(((uint64_t)ptr + alignment - 1) & ~(alignment - 1)); } -}; -template -inline constexpr T align(const T ptr, int64_t alignment) -{ - return (T)(((uint64_t)ptr + alignment - 1) & ~(alignment - 1)); -} - -inline uint32_t memCrc32(const void* InData, int32_t Length, uint32_t CRC = 0) -{ - // Based on the Slicing-by-8 implementation found here: - // http://slicing-by-8.sourceforge.net/ - - CRC = ~CRC; - - const uint8_t* __restrict Data = (uint8_t*)InData; - - // First we need to align to 32-bits - int32_t InitBytes = (int32_t)(align(Data, 4) - Data); - - if (Length > InitBytes) + inline uint32_t memCrc32(const void* InData, int32_t Length, uint32_t CRC = 0) { - Length -= InitBytes; + // Based on the Slicing-by-8 implementation found here: + // http://slicing-by-8.sourceforge.net/ - for (; InitBytes; --InitBytes) + CRC = ~CRC; + + const uint8_t* __restrict Data = (uint8_t*)InData; + + // First we need to align to 32-bits + int32_t InitBytes = (int32_t)(align(Data, 4) - Data); + + if (Length > InitBytes) + { + Length -= InitBytes; + + for (; InitBytes; --InitBytes) + { + CRC = (CRC >> 8) ^ CRCTablesSB8[0][(CRC & 0xFF) ^ *Data++]; + } + + auto Data4 = (const uint32_t*)Data; + for (uint32_t Repeat = Length / 8; Repeat; --Repeat) + { + uint32_t V1 = *Data4++ ^ CRC; + uint32_t V2 = *Data4++; + CRC = + CRCTablesSB8[7][V1 & 0xFF] ^ + CRCTablesSB8[6][(V1 >> 8) & 0xFF] ^ + CRCTablesSB8[5][(V1 >> 16) & 0xFF] ^ + CRCTablesSB8[4][V1 >> 24] ^ + CRCTablesSB8[3][V2 & 0xFF] ^ + CRCTablesSB8[2][(V2 >> 8) & 0xFF] ^ + CRCTablesSB8[1][(V2 >> 16) & 0xFF] ^ + CRCTablesSB8[0][V2 >> 24]; + } + Data = (const uint8_t*)Data4; + + Length %= 8; + } + + for (; Length; --Length) { CRC = (CRC >> 8) ^ CRCTablesSB8[0][(CRC & 0xFF) ^ *Data++]; } - auto Data4 = (const uint32_t*)Data; - for (uint32_t Repeat = Length / 8; Repeat; --Repeat) - { - uint32_t V1 = *Data4++ ^ CRC; - uint32_t V2 = *Data4++; - CRC = - CRCTablesSB8[7][V1 & 0xFF] ^ - CRCTablesSB8[6][(V1 >> 8) & 0xFF] ^ - CRCTablesSB8[5][(V1 >> 16) & 0xFF] ^ - CRCTablesSB8[4][V1 >> 24] ^ - CRCTablesSB8[3][V2 & 0xFF] ^ - CRCTablesSB8[2][(V2 >> 8) & 0xFF] ^ - CRCTablesSB8[1][(V2 >> 16) & 0xFF] ^ - CRCTablesSB8[0][V2 >> 24]; - } - Data = (const uint8_t*)Data4; - - Length %= 8; + return ~CRC; } - - for (; Length; --Length) - { - CRC = (CRC >> 8) ^ CRCTablesSB8[0][(CRC & 0xFF) ^ *Data++]; - } - - return ~CRC; -} +} \ No newline at end of file diff --git a/src/Engine/MinimalEngine.h b/src/Engine/MinimalEngine.h index 7653103..09e4c27 100644 --- a/src/Engine/MinimalEngine.h +++ b/src/Engine/MinimalEngine.h @@ -224,3 +224,5 @@ namespace Seele T* handle; }; } + +using namespace Seele; \ No newline at end of file