vkGetPipelineExecutableInternalRepresentationsKHR(3)

# vkGetPipelineExecutableInternalRepresentationsKHR(3) Manual Page

## Name

vkGetPipelineExecutableInternalRepresentationsKHR - Get internal representations of the pipeline executable

## C Specification

Each pipeline executable may have one or more text or binary internal representations associated with it which are generated as part of the compile process. These may include the final shader assembly, a binary form of the compiled shader, or the shader compiler’s internal representation at any number of intermediate compile steps. To query the internal representations associated with a pipeline executable, call:

    VkResult vkGetPipelineExecutableInternalRepresentationsKHR(
        VkDevice                                    device,
        const VkPipelineExecutableInfoKHR*          pExecutableInfo,
        uint32_t*                                   pInternalRepresentationCount,
        VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);

## Parameters

- `device` is the device that created the pipeline.

- `pExecutableInfo` describes the pipeline executable being queried.

- `pInternalRepresentationCount` is a pointer to an integer related to the number of internal representations available or queried, as described below.

- `pInternalRepresentations` is either `NULL` or a pointer to an array of VkPipelineExecutableInternalRepresentationKHR structures.

## Description

If `pInternalRepresentations` is `NULL`, then the number of internal representations associated with the pipeline executable is returned in `pInternalRepresentationCount`. Otherwise, `pInternalRepresentationCount` must point to a variable set by the user to the number of elements in the `pInternalRepresentations` array, and on return the variable is overwritten with the number of structures actually written to `pInternalRepresentations`. If `pInternalRepresentationCount` is less than the number of internal representations associated with the pipeline executable, at most `pInternalRepresentationCount` structures will be written and `vkGetPipelineExecutableInternalRepresentationsKHR` will return `VK_INCOMPLETE`.

While the details of the internal representations remain implementation dependent, the implementation should order the internal representations in the order in which they occur in the compile pipeline with the final shader assembly (if any) last.

Valid Usage

- `pipelineExecutableInfo` must be enabled.

- `pipeline` member of `pExecutableInfo` must have been created with `device`.

- `pipeline` member of `pExecutableInfo` must have been created with `VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR` set in the `flags` field of VkGraphicsPipelineCreateInfo or VkComputePipelineCreateInfo.

Valid Usage (Implicit)

- `device` must be a valid VkDevice handle

- `pExecutableInfo` must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure

- `pInternalRepresentationCount` must be a valid pointer to a `uint32_t` value

- If the value referenced by `pInternalRepresentationCount` is not `0`, and `pInternalRepresentations` is not `NULL`, `pInternalRepresentations` must be a valid pointer to an array of `pInternalRepresentationCount` VkPipelineExecutableInternalRepresentationKHR structures

Return Codes

On success, this command returns

  - `VK_SUCCESS`

  - `VK_INCOMPLETE`

On failure, this command returns

  - `VK_ERROR_OUT_OF_HOST_MEMORY`

  - `VK_ERROR_OUT_OF_DEVICE_MEMORY`

## See Also

VkDevice, VkPipelineExecutableInfoKHR, VkPipelineExecutableInternalRepresentationKHR

## 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 (c) 2014-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.