vulkan-2.0.0.1: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_AMD_shader_info

Synopsis

Documentation

newtype VkShaderInfoTypeAMD Source #

Instances
Eq VkShaderInfoTypeAMD Source # 
Instance details
Ord VkShaderInfoTypeAMD Source # 
Instance details
Read VkShaderInfoTypeAMD Source # 
Instance details
Show VkShaderInfoTypeAMD Source # 
Instance details
Storable VkShaderInfoTypeAMD Source # 
Instance details

vkGetShaderInfoAMD :: ("device" ::: VkDevice) -> ("pipeline" ::: VkPipeline) -> ("shaderStage" ::: VkShaderStageFlagBits) -> ("infoType" ::: VkShaderInfoTypeAMD) -> ("pInfoSize" ::: Ptr CSize) -> ("pInfo" ::: Ptr ()) -> IO VkResult Source #

vkGetShaderInfoAMD - Get information about a shader in a pipeline

Parameters

  • device is the device that created pipeline.
  • pipeline is the target of the query.
  • shaderStage identifies the particular shader within the pipeline about which information is being queried.
  • infoType describes what kind of information is being queried.
  • pInfoSize is a pointer to a value related to the amount of data the query returns, as described below.
  • pInfo is either NULL or a pointer to a buffer.

Description

If pInfo is NULL, then the maximum size of the information that can be retrieved about the shader, in bytes, is returned in pInfoSize. Otherwise, pInfoSize must point to a variable set by the user to the size of the buffer, in bytes, pointed to by pInfo, and on return the variable is overwritten with the amount of data actually written to pInfo.

If pInfoSize is less than the maximum size that can be retrieved by the pipeline cache, then at most pInfoSize bytes will be written to pInfo, and vkGetShaderInfoAMD will return VK_INCOMPLETE.

Not all information is available for every shader and implementations may not support all kinds of information for any shader. When a certain type of information is unavailable, the function returns VK_ERROR_FEATURE_NOT_PRESENT.

If information is successfully and fully queried, the function will return VK_SUCCESS.

For VK_SHADER_INFO_TYPE_STATISTICS_AMD, an instance of VkShaderStatisticsInfoAMD will be written to the buffer pointed to by pInfo. This structure will be populated with statistics regarding the physical device resources used by that shader along with other miscellaneous information and is described in further detail below.

For VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD, pInfo points to a UTF-8 null-terminated string containing human-readable disassembly. The exact formatting and contents of the disassembly string are vendor-specific.

The formatting and contents of all other types of information, including VK_SHADER_INFO_TYPE_BINARY_AMD, are left to the vendor and are not further specified by this extension.

Valid Usage (Implicit)

  • device must be a valid VkDevice handle
  • pipeline must be a valid VkPipeline handle
  • shaderStage must be a valid VkShaderStageFlagBits value
  • infoType must be a valid VkShaderInfoTypeAMD value
  • pInfoSize must be a valid pointer to a size_t value
  • If the value referenced by pInfoSize is not 0, and pInfo is not NULL, pInfo must be a valid pointer to an array of pInfoSize bytes
  • pipeline must have been created, allocated, or retrieved from device

Return Codes

[Success] - VK_SUCCESS

  • VK_INCOMPLETE

[Failure] - VK_ERROR_FEATURE_NOT_PRESENT

  • VK_ERROR_OUT_OF_HOST_MEMORY

See Also

VkDevice, VkPipeline, VkShaderInfoTypeAMD, VkShaderStageFlagBits

data VkShaderResourceUsageAMD Source #

VkShaderResourceUsageAMD - Resource usage information about a particular shader within a pipeline

See Also

VkShaderStatisticsInfoAMD

Constructors

VkShaderResourceUsageAMD 

Fields

data VkShaderStatisticsInfoAMD Source #

VkShaderStatisticsInfoAMD - Statistical information about a particular shader within a pipeline

Description

Some implementations may merge multiple logical shader stages together in a single shader. In such cases, shaderStageMask will contain a bitmask of all of the stages that are active within that shader. Consequently, if specifying those stages as input to vkGetShaderInfoAMD, the same output information may be returned for all such shader stage queries.

The number of available VGPRs and SGPRs (numAvailableVgprs and numAvailableSgprs respectively) are the shader-addressable subset of physical registers that is given as a limit to the compiler for register assignment. These values may further be limited by implementations due to performance optimizations where register pressure is a bottleneck.

See Also

VkShaderResourceUsageAMD, VkShaderStageFlags

Constructors

VkShaderStatisticsInfoAMD 

Fields