vulkan-3.8.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
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 Vulkan 1.0
  • Requires VK_KHR_get_physical_device_properties2
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 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 executables associated with the pipeline, at most pExecutableCount structures will be written and getPipelineExecutablePropertiesKHR will return INCOMPLETE.

Valid Usage

  • 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

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 getPipelineExecutableStatisticsKHR will return INCOMPLETE.

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

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 getPipelineExecutableInternalRepresentationsKHR will return 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

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

Device, PipelineExecutableInfoKHR, PipelineExecutableInternalRepresentationKHR

data PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source #

VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - Structure describing whether pipeline executable properties are available

Members

The members of the PhysicalDevicePipelineExecutablePropertiesFeaturesKHR structure describe the following features:

Description

If the PhysicalDevicePipelineExecutablePropertiesFeaturesKHR structure is included in the pNext chain of PhysicalDeviceFeatures2, it is filled with values indicating whether the feature is supported. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR can also be included in the pNext chain of DeviceCreateInfo to enable features.

Valid Usage (Implicit)

See Also

Bool32, StructureType

Constructors

PhysicalDevicePipelineExecutablePropertiesFeaturesKHR 

Fields

  • pipelineExecutableInfo :: Bool

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

Instances

Instances details
Eq 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

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

VkPipelineInfoKHR - Structure describing a pipeline

Valid Usage (Implicit)

See Also

Pipeline, StructureType, getPipelineExecutablePropertiesKHR

Constructors

PipelineInfoKHR 

Fields

Instances

Instances details
Eq 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

Storable 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

The stages field may be zero or it may contain one or more bits describing the stages principally used to compile this pipeline. 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 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

ShaderStageFlags, StructureType, getPipelineExecutablePropertiesKHR

Constructors

PipelineExecutablePropertiesKHR 

Fields

Instances

Instances details
Show PipelineExecutablePropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Storable 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

Pipeline, StructureType, getPipelineExecutableInternalRepresentationsKHR, getPipelineExecutableStatisticsKHR

Constructors

PipelineExecutableInfoKHR 

Fields

Instances

Instances details
Eq 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

Storable 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

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 data, at most dataSize bytes of data will be written to pData and getPipelineExecutableInternalRepresentationsKHR will return INCOMPLETE. 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

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 data, as described below.

  • data' :: Ptr ()

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

Instances

Instances details
Show PipelineExecutableInternalRepresentationKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Storable 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

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

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

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