@@ -66,7 +66,7 @@ extern "C" {
6666//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
6767
6868// Version of this file
69- #define VK_HEADER_VERSION 348
69+ #define VK_HEADER_VERSION 349
7070
7171// Complete version of this file
7272#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
@@ -1429,6 +1429,15 @@ typedef enum VkStructureType {
14291429 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR = 1000630002,
14301430 VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR = 1000619003,
14311431 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR = 1000630004,
1432+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_OPTICAL_FLOW_FEATURES_ARM = 1000631000,
1433+ VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_OPTICAL_FLOW_PROPERTIES_ARM = 1000631001,
1434+ VK_STRUCTURE_TYPE_DATA_GRAPH_OPTICAL_FLOW_IMAGE_FORMAT_INFO_ARM = 1000631003,
1435+ VK_STRUCTURE_TYPE_DATA_GRAPH_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_ARM = 1000631004,
1436+ VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_OPTICAL_FLOW_DISPATCH_INFO_ARM = 1000631005,
1437+ VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_OPTICAL_FLOW_CREATE_INFO_ARM = 1000631002,
1438+ VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_IMAGE_LAYOUT_ARM = 1000631006,
1439+ VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SINGLE_NODE_CREATE_INFO_ARM = 1000631007,
1440+ VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SINGLE_NODE_CONNECTION_ARM = 1000631008,
14321441 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT = 1000635000,
14331442 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT = 1000635001,
14341443 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC = 1000637000,
@@ -7326,6 +7335,9 @@ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_
73267335static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x20000000000000ULL;
73277336static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x40000000000000ULL;
73287337static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x80000000000000ULL;
7338+ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DATA_GRAPH_OPTICAL_FLOW_IMAGE_BIT_ARM = 0x100000000000000ULL;
7339+ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DATA_GRAPH_OPTICAL_FLOW_VECTOR_BIT_ARM = 0x200000000000000ULL;
7340+ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DATA_GRAPH_OPTICAL_FLOW_COST_BIT_ARM = 0x400000000000000ULL;
73297341
73307342
73317343typedef enum VkPipelineCreationFeedbackFlagBits {
@@ -23435,6 +23447,7 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDataGraphPipelineSessionARM)
2343523447
2343623448typedef enum VkDataGraphPipelineSessionBindPointARM {
2343723449 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM = 0,
23450+ VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_OPTICAL_FLOW_CACHE_ARM = 1000631001,
2343823451 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_MAX_ENUM_ARM = 0x7FFFFFFF
2343923452} VkDataGraphPipelineSessionBindPointARM;
2344023453
@@ -23460,13 +23473,15 @@ typedef enum VkPhysicalDeviceDataGraphOperationTypeARM {
2346023473 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM = 0,
2346123474 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM = 1000629000,
2346223475 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM = 1000629001,
23476+ VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_OPTICAL_FLOW_ARM = 1000631000,
2346323477 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
2346423478} VkPhysicalDeviceDataGraphOperationTypeARM;
2346523479typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagsARM;
2346623480
2346723481// Flag bits for VkDataGraphPipelineSessionCreateFlagBitsARM
2346823482typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagBitsARM;
2346923483static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM = 0x00000001ULL;
23484+ static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_OPTICAL_FLOW_CACHE_BIT_ARM = 0x00000002ULL;
2347023485
2347123486typedef VkFlags64 VkDataGraphPipelineDispatchFlagsARM;
2347223487
@@ -25378,6 +25393,159 @@ typedef struct VkPhysicalDeviceDataGraphModelFeaturesQCOM {
2537825393
2537925394
2538025395
25396+ // VK_ARM_data_graph_optical_flow is a preprocessor guard. Do not pass it to API calls.
25397+ #define VK_ARM_data_graph_optical_flow 1
25398+ #define VK_ARM_DATA_GRAPH_OPTICAL_FLOW_SPEC_VERSION 1
25399+ #define VK_ARM_DATA_GRAPH_OPTICAL_FLOW_EXTENSION_NAME "VK_ARM_data_graph_optical_flow"
25400+
25401+ typedef enum VkDataGraphOpticalFlowPerformanceLevelARM {
25402+ VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_ARM = 0,
25403+ VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_ARM = 1,
25404+ VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_ARM = 2,
25405+ VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_ARM = 3,
25406+ VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_ARM = 0x7FFFFFFF
25407+ } VkDataGraphOpticalFlowPerformanceLevelARM;
25408+
25409+ typedef enum VkDataGraphPipelineNodeTypeARM {
25410+ VK_DATA_GRAPH_PIPELINE_NODE_TYPE_OPTICAL_FLOW_ARM = 1000631000,
25411+ VK_DATA_GRAPH_PIPELINE_NODE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
25412+ } VkDataGraphPipelineNodeTypeARM;
25413+
25414+ typedef enum VkDataGraphPipelineNodeConnectionTypeARM {
25415+ VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_INPUT_ARM = 1000631000,
25416+ VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_REFERENCE_ARM = 1000631001,
25417+ VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_HINT_ARM = 1000631002,
25418+ VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_FLOW_VECTOR_ARM = 1000631003,
25419+ VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_COST_ARM = 1000631004,
25420+ VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
25421+ } VkDataGraphPipelineNodeConnectionTypeARM;
25422+
25423+ typedef enum VkDataGraphOpticalFlowGridSizeFlagBitsARM {
25424+ VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_ARM = 0,
25425+ VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_ARM = 0x00000001,
25426+ VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_ARM = 0x00000002,
25427+ VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_ARM = 0x00000004,
25428+ VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_ARM = 0x00000008,
25429+ VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
25430+ } VkDataGraphOpticalFlowGridSizeFlagBitsARM;
25431+ typedef VkFlags VkDataGraphOpticalFlowGridSizeFlagsARM;
25432+
25433+ typedef enum VkDataGraphOpticalFlowCreateFlagBitsARM {
25434+ VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_HINT_BIT_ARM = 0x00000001,
25435+ VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_COST_BIT_ARM = 0x00000002,
25436+ VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_RESERVED_30_BIT_ARM = 0x40000000,
25437+ VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
25438+ } VkDataGraphOpticalFlowCreateFlagBitsARM;
25439+ typedef VkFlags VkDataGraphOpticalFlowCreateFlagsARM;
25440+
25441+ typedef enum VkDataGraphOpticalFlowImageUsageFlagBitsARM {
25442+ VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_UNKNOWN_ARM = 0,
25443+ VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_INPUT_BIT_ARM = 0x00000001,
25444+ VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_OUTPUT_BIT_ARM = 0x00000002,
25445+ VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_HINT_BIT_ARM = 0x00000004,
25446+ VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_COST_BIT_ARM = 0x00000008,
25447+ VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
25448+ } VkDataGraphOpticalFlowImageUsageFlagBitsARM;
25449+ typedef VkFlags VkDataGraphOpticalFlowImageUsageFlagsARM;
25450+
25451+ typedef enum VkDataGraphOpticalFlowExecuteFlagBitsARM {
25452+ VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_ARM = 0x00000001,
25453+ VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_INPUT_UNCHANGED_BIT_ARM = 0x00000002,
25454+ VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_REFERENCE_UNCHANGED_BIT_ARM = 0x00000004,
25455+ VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_INPUT_IS_PREVIOUS_REFERENCE_BIT_ARM = 0x00000008,
25456+ VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_REFERENCE_IS_PREVIOUS_INPUT_BIT_ARM = 0x00000010,
25457+ VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
25458+ } VkDataGraphOpticalFlowExecuteFlagBitsARM;
25459+ typedef VkFlags VkDataGraphOpticalFlowExecuteFlagsARM;
25460+ typedef struct VkPhysicalDeviceDataGraphOpticalFlowFeaturesARM {
25461+ VkStructureType sType;
25462+ void* pNext;
25463+ VkBool32 dataGraphOpticalFlow;
25464+ } VkPhysicalDeviceDataGraphOpticalFlowFeaturesARM;
25465+
25466+ typedef struct VkQueueFamilyDataGraphOpticalFlowPropertiesARM {
25467+ VkStructureType sType;
25468+ void* pNext;
25469+ VkDataGraphOpticalFlowGridSizeFlagsARM supportedOutputGridSizes;
25470+ VkDataGraphOpticalFlowGridSizeFlagsARM supportedHintGridSizes;
25471+ VkBool32 hintSupported;
25472+ VkBool32 costSupported;
25473+ uint32_t minWidth;
25474+ uint32_t minHeight;
25475+ uint32_t maxWidth;
25476+ uint32_t maxHeight;
25477+ } VkQueueFamilyDataGraphOpticalFlowPropertiesARM;
25478+
25479+ typedef struct VkDataGraphPipelineOpticalFlowCreateInfoARM {
25480+ VkStructureType sType;
25481+ void* pNext;
25482+ uint32_t width;
25483+ uint32_t height;
25484+ VkFormat imageFormat;
25485+ VkFormat flowVectorFormat;
25486+ VkFormat costFormat;
25487+ VkDataGraphOpticalFlowGridSizeFlagsARM outputGridSize;
25488+ VkDataGraphOpticalFlowGridSizeFlagsARM hintGridSize;
25489+ VkDataGraphOpticalFlowPerformanceLevelARM performanceLevel;
25490+ VkDataGraphOpticalFlowCreateFlagsARM flags;
25491+ } VkDataGraphPipelineOpticalFlowCreateInfoARM;
25492+
25493+ typedef struct VkDataGraphOpticalFlowImageFormatPropertiesARM {
25494+ VkStructureType sType;
25495+ void* pNext;
25496+ VkFormat format;
25497+ } VkDataGraphOpticalFlowImageFormatPropertiesARM;
25498+
25499+ typedef struct VkDataGraphOpticalFlowImageFormatInfoARM {
25500+ VkStructureType sType;
25501+ const void* pNext;
25502+ VkDataGraphOpticalFlowImageUsageFlagsARM usage;
25503+ } VkDataGraphOpticalFlowImageFormatInfoARM;
25504+
25505+ typedef struct VkDataGraphPipelineOpticalFlowDispatchInfoARM {
25506+ VkStructureType sType;
25507+ void* pNext;
25508+ VkDataGraphOpticalFlowExecuteFlagsARM flags;
25509+ uint32_t meanFlowL1NormHint;
25510+ } VkDataGraphPipelineOpticalFlowDispatchInfoARM;
25511+
25512+ typedef struct VkDataGraphPipelineResourceInfoImageLayoutARM {
25513+ VkStructureType sType;
25514+ const void* pNext;
25515+ VkImageLayout layout;
25516+ } VkDataGraphPipelineResourceInfoImageLayoutARM;
25517+
25518+ typedef struct VkDataGraphPipelineSingleNodeConnectionARM {
25519+ VkStructureType sType;
25520+ void* pNext;
25521+ uint32_t set;
25522+ uint32_t binding;
25523+ VkDataGraphPipelineNodeConnectionTypeARM connection;
25524+ } VkDataGraphPipelineSingleNodeConnectionARM;
25525+
25526+ typedef struct VkDataGraphPipelineSingleNodeCreateInfoARM {
25527+ VkStructureType sType;
25528+ void* pNext;
25529+ VkDataGraphPipelineNodeTypeARM nodeType;
25530+ uint32_t connectionCount;
25531+ const VkDataGraphPipelineSingleNodeConnectionARM* pConnections;
25532+ } VkDataGraphPipelineSingleNodeCreateInfoARM;
25533+
25534+ typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties, const VkDataGraphOpticalFlowImageFormatInfoARM* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkDataGraphOpticalFlowImageFormatPropertiesARM* pImageFormatProperties);
25535+
25536+ #ifndef VK_NO_PROTOTYPES
25537+ #ifndef VK_ONLY_EXPORTED_PROTOTYPES
25538+ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM(
25539+ VkPhysicalDevice physicalDevice,
25540+ uint32_t queueFamilyIndex,
25541+ const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties,
25542+ const VkDataGraphOpticalFlowImageFormatInfoARM* pOpticalFlowImageFormatInfo,
25543+ uint32_t* pFormatCount,
25544+ VkDataGraphOpticalFlowImageFormatPropertiesARM* pImageFormatProperties);
25545+ #endif
25546+ #endif
25547+
25548+
2538125549// VK_EXT_shader_long_vector is a preprocessor guard. Do not pass it to API calls.
2538225550#define VK_EXT_shader_long_vector 1
2538325551#define VK_EXT_SHADER_LONG_VECTOR_SPEC_VERSION 1
0 commit comments