| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_QCOM_data_graph_model
Description
Name
VK_QCOM_data_graph_model - device extension
VK_QCOM_data_graph_model
- Name String
VK_QCOM_data_graph_model
- Extension Type
- Device extension
- Registered Extension Number
- 630
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_ARM_data_graph
- Contact
- Extension Proposal
- VK_QCOM_data_graph_model
Other Extension Metadata
- Last Modified Date
- 2025-06-24
- Interactions and External Dependencies
- This extension interacts with
VK_ARM_tensors
- This extension interacts with
- Contributors
- Matthew Netsch, Qualcomm Technologies, Inc
- Rob VanReenen, Qualcomm Technologies, Inc
- Balaji Calidas, Qualcomm Technologies, Inc
- Jacob Yenney, Qualcomm Technologies, Inc
- Kévin Petit, Arm Ltd.
Description
This extension supports new
PhysicalDeviceDataGraphProcessingEngineTypeARM,
and
PhysicalDeviceDataGraphOperationTypeARM
types for data graph pipelines added in VK_ARM_data_graph.
A new pipeline cache type is also added to seamlessly import ML models such as ONNX through QNN workflow, and run them on the device or an external compute engine.
New Structures
Extending
DataGraphPipelineCreateInfoARM:Extending
PhysicalDeviceFeatures2,DeviceCreateInfo:
New Enums
New Enum Constants
QCOM_DATA_GRAPH_MODEL_EXTENSION_NAMEQCOM_DATA_GRAPH_MODEL_SPEC_VERSIONExtending
PhysicalDeviceDataGraphOperationTypeARM:Extending
PipelineCacheHeaderVersion:Extending
StructureType:
Version History
Revision 1, 2025-06-24 (Matthew Netsch)
- Initial revision
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification.
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- data PipelineCacheHeaderVersionDataGraphQCOM = PipelineCacheHeaderVersionDataGraphQCOM {}
- data DataGraphPipelineBuiltinModelCreateInfoQCOM = DataGraphPipelineBuiltinModelCreateInfoQCOM {}
- data PhysicalDeviceDataGraphModelFeaturesQCOM = PhysicalDeviceDataGraphModelFeaturesQCOM {}
- newtype DataGraphModelCacheTypeQCOM where
- type QCOM_DATA_GRAPH_MODEL_SPEC_VERSION = 1
- pattern QCOM_DATA_GRAPH_MODEL_SPEC_VERSION :: Integral a => a
- type QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME = "VK_QCOM_data_graph_model"
- pattern QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME :: (Eq a, IsString a) => a
- data PhysicalDeviceDataGraphOperationSupportARM = PhysicalDeviceDataGraphOperationSupportARM {}
- newtype PhysicalDeviceDataGraphProcessingEngineTypeARM where
- PhysicalDeviceDataGraphProcessingEngineTypeARM Int32
- pattern PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM :: PhysicalDeviceDataGraphProcessingEngineTypeARM
- pattern PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM :: PhysicalDeviceDataGraphProcessingEngineTypeARM
- pattern PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM :: PhysicalDeviceDataGraphProcessingEngineTypeARM
- newtype PhysicalDeviceDataGraphOperationTypeARM where
- PhysicalDeviceDataGraphOperationTypeARM Int32
- pattern PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM :: PhysicalDeviceDataGraphOperationTypeARM
- pattern PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM :: PhysicalDeviceDataGraphOperationTypeARM
- pattern PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM :: PhysicalDeviceDataGraphOperationTypeARM
- type MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM = 128
- pattern MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM :: Integral a => a
- type DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM = 3
- pattern DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM :: Integral a => a
Documentation
data PipelineCacheHeaderVersionDataGraphQCOM Source #
VkPipelineCacheHeaderVersionDataGraphQCOM - Structure describing the layout of the pipeline cache header for data graphs
Description
The application should verify that the header info is compatible with
the
DataGraphProcessingEngineCreateInfoARM
passed during pipeline creation. Implementations may return
PIPELINE_COMPILE_REQUIRED_EXT
from createDataGraphPipelinesARM
if the cache is not compatible.
This cache type is built using offline compilation, therefore Vulkan does not define engine compatibility. The application should refer to the offline compiler used to create the cache for guidance on compatibility.
Unlike most structures declared by the Vulkan API, all fields of this structure are written with the least significant byte first, regardless of host byte-order.
The C language specification does not define the packing of structure members. This layout assumes tight structure member packing, with members laid out in the order listed in the structure, and the intended size of the structure is 28 bytes. If a compiler produces code that diverges from that pattern, applications must employ another method to set values at the correct offsets.
Valid Usage
- The dataGraphModel feature must be enabled
-
headerSizemust be 28 -
headerVersionmust bePIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM -
headerSizemust not exceed the size of the pipeline cache
Valid Usage (Implicit)
-
headerVersionmust be a validPipelineCacheHeaderVersionvalue
-
cacheTypemust be a validDataGraphModelCacheTypeQCOMvalue
See Also
VK_QCOM_data_graph_model,
DataGraphModelCacheTypeQCOM,
PipelineCacheHeaderVersion
Constructors
| PipelineCacheHeaderVersionDataGraphQCOM | |
Fields
| |
Instances
data DataGraphPipelineBuiltinModelCreateInfoQCOM Source #
VkDataGraphPipelineBuiltinModelCreateInfoQCOM - Structure specifying a built-in model for the newly created data graph pipeline
Description
The pipelineCache is ignored for the creation of this pipeline.
Applications can specify arguments to the built-in operation named in
pOperation with
DataGraphPipelineCompilerControlCreateInfoARM.
Applications should verify that the pVendorOptions, layout, and
other state included with this pipeline creation are compatible with the
pOperation. Implementations may fail if any state is not compatible
and return PIPELINE_COMPILE_REQUIRED.
Built-in models are defined by the provider of the model, therefore Vulkan does not define model compatibility. The application should refer to the provider of the built-in model for guidance on compatibility.
Valid Usage
-
All members of
pOperationmust be identical to aQueueFamilyDataGraphPropertiesARM::operationretrieved fromgetPhysicalDeviceQueueFamilyDataGraphPropertiesARMwith thephysicalDevicethat was used to createdeviceand paired in the retrieved results with aQueueFamilyDataGraphPropertiesARM::engineidentical to an element ofDataGraphProcessingEngineCreateInfoARM::pProcessingEnginesprovided in thepNextchain
Valid Usage (Implicit)
-
pOperationmust be a valid pointer to a validPhysicalDeviceDataGraphOperationSupportARMstructure
See Also
VK_QCOM_data_graph_model,
PhysicalDeviceDataGraphOperationSupportARM,
StructureType
Constructors
| DataGraphPipelineBuiltinModelCreateInfoQCOM | |
Fields
| |
Instances
data PhysicalDeviceDataGraphModelFeaturesQCOM Source #
VkPhysicalDeviceDataGraphModelFeaturesQCOM - Structure describing features to control data graph model
Description
If the PhysicalDeviceDataGraphModelFeaturesQCOM structure is included
in the pNext chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2,
it is filled in to indicate whether each corresponding feature is
supported. If the application wishes to use a
Device with any features described by
PhysicalDeviceDataGraphModelFeaturesQCOM, it must add an instance of
the structure, with the desired feature members set to
TRUE, to the pNext chain of
DeviceCreateInfo when creating the
Device.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceDataGraphModelFeaturesQCOM | |
Fields | |
Instances
newtype DataGraphModelCacheTypeQCOM Source #
VkDataGraphModelCacheTypeQCOM - Encode pipeline data graph cache type
Description
DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOMspecifies a general binary layout type.
See Also
VK_QCOM_data_graph_model,
PipelineCacheHeaderVersionDataGraphQCOM
Constructors
| DataGraphModelCacheTypeQCOM Int32 |
Bundled Patterns
| pattern DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOM :: DataGraphModelCacheTypeQCOM |
Instances
type QCOM_DATA_GRAPH_MODEL_SPEC_VERSION = 1 Source #
pattern QCOM_DATA_GRAPH_MODEL_SPEC_VERSION :: Integral a => a Source #
type QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME = "VK_QCOM_data_graph_model" Source #
pattern QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
data PhysicalDeviceDataGraphOperationSupportARM Source #
VkPhysicalDeviceDataGraphOperationSupportARM - Structure describing an operation or set of operations supported by a data graph processing engine
See Also
VK_ARM_data_graph,
DataGraphPipelineBuiltinModelCreateInfoQCOM,
PhysicalDeviceDataGraphOperationTypeARM,
QueueFamilyDataGraphPropertiesARM
Constructors
| PhysicalDeviceDataGraphOperationSupportARM | |
Fields
| |
Instances
newtype PhysicalDeviceDataGraphProcessingEngineTypeARM Source #
VkPhysicalDeviceDataGraphProcessingEngineTypeARM - Enumeration describing data graph processing engines
Description
PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARMcorresponds to the default data graph processing engine.
PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOMspecifies an engine that specializes in neural processing.PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOMspecifies an engine that uses compute processing to execute data graphs.
See Also
VK_ARM_data_graph,
PhysicalDeviceDataGraphProcessingEngineARM,
PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM
Constructors
| PhysicalDeviceDataGraphProcessingEngineTypeARM Int32 |
Bundled Patterns
Instances
newtype PhysicalDeviceDataGraphOperationTypeARM Source #
VkPhysicalDeviceDataGraphOperationTypeARM - Enumeration describing data graph operations
Description
PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARMcorresponds to operations provided by a SPIR-V extended instruction set.
PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOMspecifies an operation that executes neural models provided by the application.PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOMspecifies an operation that executes specialized built-in models provided by the implementation.
See Also
VK_ARM_data_graph,
PhysicalDeviceDataGraphOperationSupportARM
Constructors
| PhysicalDeviceDataGraphOperationTypeARM Int32 |
Bundled Patterns
Instances
pattern MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM :: Integral a => a Source #
VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM - Length of a data graph operation name string
See Also
pattern DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM :: Integral a => a Source #
VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM - Length of a data graph toolchain version string