HORIZON HASKELLDocslts/ghc-10.0.x8174fa42026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8174fa4 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Name

VK_KHR_pipeline_executable_properties - device extension

VK_KHR_pipeline_executable_properties

Name String

VK_KHR_pipeline_executable_properties

Extension Type

Device extension

Registered Extension Number

270

Revision

1

Ratification Status

Ratified

Extension and Version Dependencies

VK_KHR_get_physical_device_properties2

or

Vulkan Version 1.1

Special Use
Contact

Other Extension Metadata

Last Modified Date

2019-05-28

IP Status

No known IP claims.

Interactions and External Dependencies; Contributors
  • Faith Ekstrand, Intel

  • Ian Romanick, Intel

  • Kenneth Graunke, Intel

  • Baldur Karlsson, Valve

  • Jesse Hall, Google

  • Jeff Bolz, Nvidia

  • Piers Daniel, Nvidia

  • Tobias Hector, AMD

  • Jan-Harald Fredriksen, ARM

  • Tom Olson, ARM

  • Daniel Koch, Nvidia

  • Spencer Fricke, Samsung

Description

When a pipeline is created, its state and shaders are compiled into zero or more device-specific executables, which are used when executing commands against that pipeline. This extension adds a mechanism to query properties and statistics about the different executables produced by the pipeline compilation process. This is intended to be used by debugging and performance tools to allow them to provide more detailed information to the user. Certain compile time shader statistics provided through this extension may be useful to developers for debugging or performance analysis.

New Commands

New Structures

New Unions

New Enums

New Enum Constants

Issues

1) What should we call the pieces of the pipeline which are produced by the compilation process and about which you can query properties and statistics?

RESOLVED: Call them “executables”. The name “binary” was used in early drafts of the extension but it was determined that “pipeline binary” could have a fairly broad meaning (such as a binary serialized form of an entire pipeline) and was too big of a namespace for the very specific needs of this extension.

Version History

  • Revision 1, 2019-05-28 (Faith Ekstrand)

    • Initial draft

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.

  • 10 types
  • 4 values
  • Packagevulkan-3.27
  • Exports20
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_KHR_pipeline_executable_properties.hs
valuegetPipelineExecutablePropertiesKHR
  1. :: MonadIO io
  2. => Device

    device is the device that created the pipeline.

  3. -> PipelineInfoKHR

    pPipelineInfo describes the pipeline being queried.

  4. -> io (Result, "properties" ::: Vector PipelineExecutablePropertiesKHR)
#

vkGetPipelineExecutablePropertiesKHR - Get the executables associated with a pipeline

Description

If pProperties is NULL, then the number of pipeline executables associated with the pipeline is returned in pExecutableCount. Otherwise, pExecutableCount must point to a variable set by the application to the number of elements in the pProperties array, and on return the variable is overwritten with the number of structures actually written to pProperties. If pExecutableCount is less than the number of pipeline executables associated with the pipeline, at most pExecutableCount structures will be written, and INCOMPLETE will be returned instead of SUCCESS, to indicate that not all the available properties were returned.

Valid Usage

  • The pipeline member of pPipelineInfo must have been created with device

Valid Usage (Implicit)

  • device must be a valid Device handle

  • pPipelineInfo must be a valid pointer to a valid PipelineInfoKHR structure

  • pExecutableCount must be a valid pointer to a uint32_t value

  • If the value referenced by pExecutableCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pExecutableCount PipelineExecutablePropertiesKHR structures

Return Codes

Success
Failure

See Also

VK_KHR_pipeline_executable_properties, Device, PipelineExecutablePropertiesKHR, PipelineInfoKHR

valuegetPipelineExecutableStatisticsKHR
  1. :: MonadIO io
  2. => Device

    device is the device that created the pipeline.

  3. -> PipelineExecutableInfoKHR

    pExecutableInfo describes the pipeline executable being queried.

  4. -> io (Result, "statistics" ::: Vector PipelineExecutableStatisticKHR)
#

vkGetPipelineExecutableStatisticsKHR - Get compile time statistics associated with a pipeline executable

Description

If pStatistics is NULL, then the number of statistics associated with the pipeline executable is returned in pStatisticCount. Otherwise, pStatisticCount must point to a variable set by the application to the number of elements in the pStatistics array, and on return the variable is overwritten with the number of structures actually written to pStatistics. If pStatisticCount is less than the number of statistics associated with the pipeline executable, at most pStatisticCount structures will be written, and INCOMPLETE will be returned instead of SUCCESS, to indicate that not all the available statistics were returned.

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

  • pExecutableInfo must be a valid pointer to a valid PipelineExecutableInfoKHR structure

  • pStatisticCount must be a valid pointer to a uint32_t value

  • If the value referenced by pStatisticCount is not 0, and pStatistics is not NULL, pStatistics must be a valid pointer to an array of pStatisticCount PipelineExecutableStatisticKHR structures

Return Codes

Success
Failure

See Also

VK_KHR_pipeline_executable_properties, Device, PipelineExecutableInfoKHR, PipelineExecutableStatisticKHR

valuegetPipelineExecutableInternalRepresentationsKHR
  1. :: MonadIO io
  2. => Device

    device is the device that created the pipeline.

  3. -> PipelineExecutableInfoKHR

    pExecutableInfo describes the pipeline executable being queried.

  4. -> io (Result, "internalRepresentations" ::: Vector PipelineExecutableInternalRepresentationKHR)
#

vkGetPipelineExecutableInternalRepresentationsKHR - Get internal representations of the pipeline executable

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 application 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 INCOMPLETE will be returned instead of SUCCESS, to indicate that not all the available representations were returned.

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 compiled pipeline with the final shader assembly (if any) last.

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

  • pExecutableInfo must be a valid pointer to a valid PipelineExecutableInfoKHR 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 PipelineExecutableInternalRepresentationKHR structures

Return Codes

Success
Failure

See Also

VK_KHR_pipeline_executable_properties, Device, PipelineExecutableInfoKHR, PipelineExecutableInternalRepresentationKHR

VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - Structure describing whether pipeline executable properties are available

Members

This structure describes the following feature:

Description

If the PhysicalDevicePipelineExecutablePropertiesFeaturesKHR 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 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, 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.

Structure Chaining

Extends the structures

See Also

VK_KHR_pipeline_executable_properties, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
datadata PipelineInfoKHR
#

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPipelineExecutablePropertiesKHR - Structure describing a pipeline executable

Description

Not all implementations have a 1:1 mapping between shader stages and pipeline executables and some implementations may reduce a given shader stage to fixed function hardware programming such that no pipeline executable is available. No guarantees are provided about the mapping between shader stages and pipeline executables and stages should be considered a best effort hint. Because the application cannot rely on the stages field to provide an exact description, name and description provide a human readable name and description which more accurately describes the given pipeline executable.

Valid Usage (Implicit)

See Also

VK_KHR_pipeline_executable_properties, ShaderStageFlags, StructureType, getPipelineExecutablePropertiesKHR

Constructors

Instances5Show, Storable, FromCStruct, ToCStruct, Zero

VkPipelineExecutableInfoKHR - Structure describing a pipeline executable to query for associated statistics or internal representations

Valid Usage (Implicit)

See Also

VK_KHR_pipeline_executable_properties, Pipeline, StructureType, getPipelineExecutableInternalRepresentationsKHR, getPipelineExecutableStatisticsKHR

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPipelineExecutableStatisticKHR - Structure describing a compile time pipeline executable statistic

Valid Usage (Implicit)

See Also

VK_KHR_pipeline_executable_properties, PipelineExecutableStatisticFormatKHR, PipelineExecutableStatisticValueKHR, StructureType, getPipelineExecutableStatisticsKHR

Constructors

Instances4Show, FromCStruct, ToCStruct, Zero

VkPipelineExecutableInternalRepresentationKHR - Structure describing the textual form of a pipeline executable internal representation

Description

If pData is NULL, then the size, in bytes, of the internal representation data is returned in dataSize. Otherwise, dataSize must be the size of the buffer, in bytes, pointed to by pData and on return dataSize is overwritten with the number of bytes of data actually written to pData including any trailing null character. If dataSize is less than the size, in bytes, of the internal representation’s data, at most dataSize bytes of data will be written to pData, and INCOMPLETE will be returned instead of SUCCESS, to indicate that not all the available representation was returned.

If isText is TRUE and pData is not NULL and dataSize is not zero, the last byte written to pData will be a null character.

Valid Usage (Implicit)

See Also

VK_KHR_pipeline_executable_properties, Bool32, StructureType, getPipelineExecutableInternalRepresentationsKHR

Constructors

  • PipelineExecutableInternalRepresentationKHR
    • name :: ByteString

      name is an array of MAX_DESCRIPTION_SIZE char containing a null-terminated UTF-8 string which is a short human readable name for this internal representation.

    • description :: ByteString

      description is an array of MAX_DESCRIPTION_SIZE char containing a null-terminated UTF-8 string which is a human readable description for this internal representation.

    • isText :: Bool

      isText specifies whether the returned data is text or opaque data. If isText is TRUE then the data returned in pData is text and is guaranteed to be a null-terminated UTF-8 string.

    • dataSize :: Word64

      dataSize is an integer related to the size, in bytes, of the internal representation’s data, as described below.

    • data' :: Ptr ()

      pData is either NULL or a pointer to a block of data into which the implementation will write the internal representation.

Instances5Show, Storable, FromCStruct, ToCStruct, Zero

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic

Description

See Also

VK_KHR_pipeline_executable_properties, PipelineExecutableStatisticKHR

Instances6Eq, Ord, Read, Show, Storable, Zero