Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype VkShaderInfoTypeAMD = VkShaderInfoTypeAMD Int32
- pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD :: VkShaderInfoTypeAMD
- pattern VK_SHADER_INFO_TYPE_BINARY_AMD :: VkShaderInfoTypeAMD
- pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD :: VkShaderInfoTypeAMD
- pattern VK_AMD_SHADER_INFO_SPEC_VERSION :: Integral a => a
- pattern VK_AMD_SHADER_INFO_EXTENSION_NAME :: (Eq a, IsString a) => a
- vkGetShaderInfoAMD :: ("device" ::: VkDevice) -> ("pipeline" ::: VkPipeline) -> ("shaderStage" ::: VkShaderStageFlagBits) -> ("infoType" ::: VkShaderInfoTypeAMD) -> ("pInfoSize" ::: Ptr CSize) -> ("pInfo" ::: Ptr ()) -> IO VkResult
- data VkShaderResourceUsageAMD = VkShaderResourceUsageAMD {}
- data VkShaderStatisticsInfoAMD = VkShaderStatisticsInfoAMD {}
Documentation
newtype VkShaderInfoTypeAMD Source #
Instances
pattern VK_SHADER_INFO_TYPE_BINARY_AMD :: VkShaderInfoTypeAMD Source #
pattern VK_AMD_SHADER_INFO_SPEC_VERSION :: Integral a => a Source #
pattern VK_AMD_SHADER_INFO_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
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 createdpipeline
.
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 validVkDevice
handle
pipeline
must be a validVkPipeline
handleshaderStage
must be a validVkShaderStageFlagBits
valueinfoType
must be a validVkShaderInfoTypeAMD
valuepInfoSize
must be a valid pointer to asize_t
value- If the value referenced by
pInfoSize
is not0
, andpInfo
is notNULL
,pInfo
must be a valid pointer to an array ofpInfoSize
bytes pipeline
must have been created, allocated, or retrieved fromdevice
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
VkShaderResourceUsageAMD | |
|
Instances
Eq VkShaderResourceUsageAMD Source # | |
Show VkShaderResourceUsageAMD Source # | |
showsPrec :: Int -> VkShaderResourceUsageAMD -> ShowS # show :: VkShaderResourceUsageAMD -> String # showList :: [VkShaderResourceUsageAMD] -> ShowS # | |
Storable VkShaderResourceUsageAMD Source # | |
sizeOf :: VkShaderResourceUsageAMD -> Int # alignment :: VkShaderResourceUsageAMD -> Int # peekElemOff :: Ptr VkShaderResourceUsageAMD -> Int -> IO VkShaderResourceUsageAMD # pokeElemOff :: Ptr VkShaderResourceUsageAMD -> Int -> VkShaderResourceUsageAMD -> IO () # peekByteOff :: Ptr b -> Int -> IO VkShaderResourceUsageAMD # pokeByteOff :: Ptr b -> Int -> VkShaderResourceUsageAMD -> IO () # peek :: Ptr VkShaderResourceUsageAMD -> IO VkShaderResourceUsageAMD # poke :: Ptr VkShaderResourceUsageAMD -> VkShaderResourceUsageAMD -> IO () # |
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
VkShaderStatisticsInfoAMD | |
|
Instances
Eq VkShaderStatisticsInfoAMD Source # | |
Show VkShaderStatisticsInfoAMD Source # | |
showsPrec :: Int -> VkShaderStatisticsInfoAMD -> ShowS # show :: VkShaderStatisticsInfoAMD -> String # showList :: [VkShaderStatisticsInfoAMD] -> ShowS # | |
Storable VkShaderStatisticsInfoAMD Source # | |
sizeOf :: VkShaderStatisticsInfoAMD -> Int # alignment :: VkShaderStatisticsInfoAMD -> Int # peekElemOff :: Ptr VkShaderStatisticsInfoAMD -> Int -> IO VkShaderStatisticsInfoAMD # pokeElemOff :: Ptr VkShaderStatisticsInfoAMD -> Int -> VkShaderStatisticsInfoAMD -> IO () # peekByteOff :: Ptr b -> Int -> IO VkShaderStatisticsInfoAMD # pokeByteOff :: Ptr b -> Int -> VkShaderStatisticsInfoAMD -> IO () # peek :: Ptr VkShaderStatisticsInfoAMD -> IO VkShaderStatisticsInfoAMD # poke :: Ptr VkShaderStatisticsInfoAMD -> VkShaderStatisticsInfoAMD -> IO () # |