vulkan-3.24.5: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Description

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
Extension and Version Dependencies
  • Requires support for Vulkan 1.0
  • Requires VK_KHR_get_physical_device_properties2 to be enabled for any device-level functionality
Special Use
Contact

Other Extension Metadata

Last Modified Date
2019-05-28
IP Status
No known IP claims.
Interactions and External Dependencies; Contributors
  • Jason 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 (Jason Ekstrand)

    • Initial draft

See Also

PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PipelineExecutableInfoKHR, PipelineExecutableInternalRepresentationKHR, PipelineExecutablePropertiesKHR, PipelineExecutableStatisticFormatKHR, PipelineExecutableStatisticKHR, PipelineExecutableStatisticValueKHR, PipelineInfoKHR, getPipelineExecutableInternalRepresentationsKHR, getPipelineExecutablePropertiesKHR, getPipelineExecutableStatisticsKHR

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

Documentation

getPipelineExecutablePropertiesKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device that created the pipeline.

-> PipelineInfoKHR

pPipelineInfo describes the pipeline being queried.

-> 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 user 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

getPipelineExecutableStatisticsKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device that created the pipeline.

-> PipelineExecutableInfoKHR

pExecutableInfo describes the pipeline executable being queried.

-> 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 user 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

getPipelineExecutableInternalRepresentationsKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device that created the pipeline.

-> PipelineExecutableInfoKHR

pExecutableInfo describes the pipeline executable being queried.

-> 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 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 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

data PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source #

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. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_KHR_pipeline_executable_properties, Bool32, StructureType

Constructors

PhysicalDevicePipelineExecutablePropertiesFeaturesKHR 

Fields

  • pipelineExecutableInfo :: Bool

    pipelineExecutableInfo indicates that the implementation supports reporting properties and statistics about the pipeline executables associated with a compiled pipeline.

Instances

Instances details
Storable PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Show PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Eq PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

FromCStruct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

ToCStruct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Zero PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

data PipelineInfoKHR Source #

Constructors

PipelineInfoKHR 

Fields

Instances

Instances details
Storable PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Show PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Eq PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

FromCStruct PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

ToCStruct PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Zero PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

data PipelineExecutablePropertiesKHR Source #

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

PipelineExecutablePropertiesKHR 

Fields

Instances

Instances details
Storable PipelineExecutablePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Show PipelineExecutablePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

FromCStruct PipelineExecutablePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

ToCStruct PipelineExecutablePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Zero PipelineExecutablePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

data PipelineExecutableInfoKHR Source #

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

PipelineExecutableInfoKHR 

Fields

Instances

Instances details
Storable PipelineExecutableInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Show PipelineExecutableInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Eq PipelineExecutableInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

FromCStruct PipelineExecutableInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

ToCStruct PipelineExecutableInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Zero PipelineExecutableInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

data PipelineExecutableStatisticKHR Source #

VkPipelineExecutableStatisticKHR - Structure describing a compile-time pipeline executable statistic

Valid Usage (Implicit)

See Also

VK_KHR_pipeline_executable_properties, PipelineExecutableStatisticFormatKHR, PipelineExecutableStatisticValueKHR, StructureType, getPipelineExecutableStatisticsKHR

Constructors

PipelineExecutableStatisticKHR 

Fields

data PipelineExecutableInternalRepresentationKHR Source #

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 

Fields

  • 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.

Instances

Instances details
Storable PipelineExecutableInternalRepresentationKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Show PipelineExecutableInternalRepresentationKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

FromCStruct PipelineExecutableInternalRepresentationKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

ToCStruct PipelineExecutableInternalRepresentationKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Zero PipelineExecutableInternalRepresentationKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

newtype PipelineExecutableStatisticFormatKHR Source #

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic

See Also

VK_KHR_pipeline_executable_properties, PipelineExecutableStatisticKHR

Bundled Patterns

pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR :: PipelineExecutableStatisticFormatKHR

PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR specifies that the statistic is returned as a 32-bit boolean value which must be either TRUE or FALSE and should be read from the b32 field of PipelineExecutableStatisticValueKHR.

pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR :: PipelineExecutableStatisticFormatKHR

PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR specifies that the statistic is returned as a signed 64-bit integer and should be read from the i64 field of PipelineExecutableStatisticValueKHR.

pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR :: PipelineExecutableStatisticFormatKHR

PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR specifies that the statistic is returned as an unsigned 64-bit integer and should be read from the u64 field of PipelineExecutableStatisticValueKHR.

pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR :: PipelineExecutableStatisticFormatKHR

PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR specifies that the statistic is returned as a 64-bit floating-point value and should be read from the f64 field of PipelineExecutableStatisticValueKHR.

Instances

Instances details
Storable PipelineExecutableStatisticFormatKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Read PipelineExecutableStatisticFormatKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Show PipelineExecutableStatisticFormatKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Eq PipelineExecutableStatisticFormatKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Ord PipelineExecutableStatisticFormatKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Zero PipelineExecutableStatisticFormatKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

type KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME = "VK_KHR_pipeline_executable_properties" Source #