Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- getShaderInfoAMD :: forall io. MonadIO io => Device -> Pipeline -> ShaderStageFlagBits -> ShaderInfoTypeAMD -> io (Result, "info" ::: ByteString)
- data ShaderResourceUsageAMD = ShaderResourceUsageAMD {}
- data ShaderStatisticsInfoAMD = ShaderStatisticsInfoAMD {}
- newtype ShaderInfoTypeAMD where
- type AMD_SHADER_INFO_SPEC_VERSION = 1
- pattern AMD_SHADER_INFO_SPEC_VERSION :: forall a. Integral a => a
- type AMD_SHADER_INFO_EXTENSION_NAME = "VK_AMD_shader_info"
- pattern AMD_SHADER_INFO_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
:: forall io. MonadIO io | |
=> Device |
|
-> Pipeline |
|
-> ShaderStageFlagBits |
|
-> ShaderInfoTypeAMD |
|
-> io (Result, "info" ::: ByteString) |
vkGetShaderInfoAMD - Get information about a shader in a pipeline
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 getShaderInfoAMD
will return
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
ERROR_FEATURE_NOT_PRESENT
.
If information is successfully and fully queried, the function will
return SUCCESS
.
For infoType
SHADER_INFO_TYPE_STATISTICS_AMD
, a
ShaderStatisticsInfoAMD
structure 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 infoType
SHADER_INFO_TYPE_DISASSEMBLY_AMD
, pInfo
is a pointer
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
infoType
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 validDevice
handle
pipeline
must be a validPipeline
handleshaderStage
must be a validShaderStageFlagBits
valueinfoType
must be a validShaderInfoTypeAMD
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
See Also
data ShaderResourceUsageAMD Source #
VkShaderResourceUsageAMD - Resource usage information about a particular shader within a pipeline
See Also
ShaderResourceUsageAMD | |
|
Instances
data ShaderStatisticsInfoAMD 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 getShaderInfoAMD
,
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
ShaderStatisticsInfoAMD | |
|
Instances
Show ShaderStatisticsInfoAMD Source # | |
Defined in Vulkan.Extensions.VK_AMD_shader_info showsPrec :: Int -> ShaderStatisticsInfoAMD -> ShowS # show :: ShaderStatisticsInfoAMD -> String # showList :: [ShaderStatisticsInfoAMD] -> ShowS # | |
FromCStruct ShaderStatisticsInfoAMD Source # | |
ToCStruct ShaderStatisticsInfoAMD Source # | |
Defined in Vulkan.Extensions.VK_AMD_shader_info withCStruct :: ShaderStatisticsInfoAMD -> (Ptr ShaderStatisticsInfoAMD -> IO b) -> IO b Source # pokeCStruct :: Ptr ShaderStatisticsInfoAMD -> ShaderStatisticsInfoAMD -> IO b -> IO b Source # withZeroCStruct :: (Ptr ShaderStatisticsInfoAMD -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr ShaderStatisticsInfoAMD -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero ShaderStatisticsInfoAMD Source # | |
Defined in Vulkan.Extensions.VK_AMD_shader_info |
newtype ShaderInfoTypeAMD Source #
pattern SHADER_INFO_TYPE_STATISTICS_AMD :: ShaderInfoTypeAMD |
|
pattern SHADER_INFO_TYPE_BINARY_AMD :: ShaderInfoTypeAMD |
|
pattern SHADER_INFO_TYPE_DISASSEMBLY_AMD :: ShaderInfoTypeAMD |
|
Instances
type AMD_SHADER_INFO_SPEC_VERSION = 1 Source #
pattern AMD_SHADER_INFO_SPEC_VERSION :: forall a. Integral a => a Source #
type AMD_SHADER_INFO_EXTENSION_NAME = "VK_AMD_shader_info" Source #
pattern AMD_SHADER_INFO_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #