# VkDataGraphPipelineShaderModuleCreateInfoARM(3) Manual Page

## Name

VkDataGraphPipelineShaderModuleCreateInfoARM - Structure specifying shader module parameters of a newly created data graph pipeline

Loading… please wait.

## C Specification

The `VkDataGraphPipelineShaderModuleCreateInfoARM` structure is defined as:

    // Provided by VK_ARM_data_graph
    typedef struct VkDataGraphPipelineShaderModuleCreateInfoARM {
        VkStructureType                          sType;
        const void*                              pNext;
        VkShaderModule                           module;
        const char*                              pName;
        const VkSpecializationInfo*              pSpecializationInfo;
        uint32_t                                 constantCount;
        const VkDataGraphPipelineConstantARM*    pConstants;
    } VkDataGraphPipelineShaderModuleCreateInfoARM;

## Members

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `module` is optionally a VkShaderModule object containing the description of the graph.

- `pName` is a pointer to a null-terminated UTF-8 string specifying the graph entry point name for this pipeline.

- `pSpecializationInfo` is a pointer to a VkSpecializationInfo structure as described in Specialization Constants, or `NULL`.

- `constantCount` is the length of the `pConstants` array.

- `pConstants` is a pointer to an array of VkDataGraphPipelineConstantARM structures.

## Description

If `module` is not VK_NULL_HANDLE, the pipeline’s graph is defined by `module`. If `module` is VK_NULL_HANDLE, the pipeline’s graph is defined by the chained VkShaderModuleCreateInfo.

Valid Usage

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-id-09774
  The `id` member of all structures in `pConstants` must be a valid `GraphConstantID` used by a `OpGraphConstantARM` instruction in `module`

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-dataGraphSpecializationConstants-09849
  If the `dataGraphSpecializationConstants` feature is not enabled then `pSpecializationInfo` must be `NULL` and `module` must not contain any `OpSpec*` instructions

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-pName-09872
  `pName` must be the name of an `OpGraphEntryPointARM` in `module`

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-pNext-09873
  If the `pNext` chain includes a VkShaderModuleCreateInfo structure, then `module` must be VK_NULL_HANDLE

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-pNext-09874
  If the `pNext` chain does not include a VkShaderModuleCreateInfo structure, then `module` must be a valid VkShaderModule

Valid Usage (Implicit)

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM`

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-module-parameter
  If `module` is not VK_NULL_HANDLE, `module` must be a valid VkShaderModule handle

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-pName-parameter
  `pName` must be a null-terminated UTF-8 string

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-pSpecializationInfo-parameter
  If `pSpecializationInfo` is not `NULL`, `pSpecializationInfo` must be a valid pointer to a valid VkSpecializationInfo structure

- VUID-VkDataGraphPipelineShaderModuleCreateInfoARM-pConstants-parameter
  If `constantCount` is not `0`, and `pConstants` is not `NULL`, `pConstants` must be a valid pointer to an array of `constantCount` valid VkDataGraphPipelineConstantARM structures

## See Also

VK_ARM_data_graph, VkDataGraphPipelineConstantARM, VkShaderModule, VkSpecializationInfo, VkStructureType

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0