Structures

VkDataGraphPipelineOpticalFlowCreateInfoARM

Structure specifying the parameters of a newly-created optical flow graph pipeline

The VkDataGraphPipelineOpticalFlowCreateInfoARM structure is defined as:

typedef struct VkDataGraphPipelineOpticalFlowCreateInfoARM {
    VkStructureType sType;
    void* pNext;
    uint32_t width;
    uint32_t height;
    VkFormat imageFormat;
    VkFormat flowVectorFormat;
    VkFormat costFormat;
    VkDataGraphOpticalFlowGridSizeFlagsARM outputGridSize;
    VkDataGraphOpticalFlowGridSizeFlagsARM hintGridSize;
    VkDataGraphOpticalFlowPerformanceLevelARM performanceLevel;
    VkDataGraphOpticalFlowCreateFlagsARM flags;
} VkDataGraphPipelineOpticalFlowCreateInfoARM;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • width is the width in pixels of the input or reference image to be bound to this optical flow pipeline.
  • height is the height in pixels of the input or reference image to be bound to this optical flow pipeline.
  • imageFormat is the VkFormat of the input and reference image to be bound to this optical flow pipeline.
  • flowVectorFormat is the VkFormat of the flow vector maps (output or hint) to be bound to this optical flow pipeline.
  • costFormat is the VkFormat of the cost maps to be bound to this optical flow pipeline.
  • outputGridSize is exactly one bit of VkDataGraphOpticalFlowGridSizeFlagsARM specifying the grid size of the output flow and cost maps to be bound to this optical flow pipeline. The size of the output flow and cost maps is a function of the input image dimensions and outputGridSize and is calculated as follows:\
    OutputWidth = ⌈ width / OutputGridWidth ⌉\
    OutputHeight = ⌈ height / OutputGridHeight ⌉\
    where OutputGridWidth and OutputGridHeight are determined by outputGridSize.
  • hintGridSize is one exactly bit of VkDataGraphOpticalFlowGridSizeFlagsARM specifying the grid size of the hint flow vector map to be bound to this optical flow pipeline. The size of the hint maps is a function of the input image dimensions and hintGridSize and is calculated as follows:\
    HintWidth = ⌈ width / HintGridWidth ⌉\
    HintHeight = ⌈ height / HintGridHeight ⌉\
    where HintGridWidth and HintGridHeight are determined by hintGridSize.
  • performanceLevel is the VkDataGraphOpticalFlowPerformanceLevelARM used for this optical flow pipeline.
  • flags are the VkDataGraphOpticalFlowCreateFlagsARM used for this optical flow pipeline.

Valid Usage

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-width-09966

width must be greater than or equal to VkQueueFamilyDataGraphOpticalFlowPropertiesARM::minWidth and less than or equal to VkQueueFamilyDataGraphOpticalFlowPropertiesARM::maxWidth

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-height-09967

height must be greater than or equal to VkQueueFamilyDataGraphOpticalFlowPropertiesARM::minHeight and less than or equal to VkQueueFamilyDataGraphOpticalFlowPropertiesARM::maxHeight

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-imageFormat-09968

imageFormat must be one of the formats returned by vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM for VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_INPUT_BIT_ARM

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-flowVectorFormat-09969

flowVectorFormat must be one of the formats returned by vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM for VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_OUTPUT_BIT_ARM

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-costFormat-09970

costFormat must be one of the formats returned by vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM for VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_COST_BIT_ARM if VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_COST_BIT_ARM is set in flags

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-outputGridSize-09971

outputGridSize must be exactly one of the bits reported in VkQueueFamilyDataGraphOpticalFlowPropertiesARM::supportedOutputGridSizes

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-hintGridSize-09972

hintGridSize must be 0 or exactly one of the bits reported in VkQueueFamilyDataGraphOpticalFlowPropertiesARM::supportedHintGridSizes if VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_HINT_BIT_ARM is set in flags

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-hintGridSize-09973

hintGridSize must be the same as outputGridSize if hintGridSize is not 0

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-flags-09974

VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_HINT_BIT_ARM must not be set in flags if VkQueueFamilyDataGraphOpticalFlowPropertiesARM::hintSupported is VK_FALSE

VUID-VkDataGraphPipelineOpticalFlowCreateInfoARM-flags-09975

VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_COST_BIT_ARM must not be set in flags if VkQueueFamilyDataGraphOpticalFlowPropertiesARM::costSupported is VK_FALSE

Valid Usage (Implicit)