| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_AMD_shader_info
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
Arguments
| :: 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)
devicemust be a validDevicehandle
pipelinemust be a validPipelinehandleshaderStagemust be a validShaderStageFlagBitsvalueinfoTypemust be a validShaderInfoTypeAMDvaluepInfoSizemust be a valid pointer to asize_tvalue- If the value referenced by
pInfoSizeis not0, andpInfois notNULL,pInfomust be a valid pointer to an array ofpInfoSizebytes pipelinemust 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
Constructors
| ShaderResourceUsageAMD | |
Fields
| |
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
Constructors
| ShaderStatisticsInfoAMD | |
Fields
| |
Instances
newtype ShaderInfoTypeAMD Source #
Constructors
| ShaderInfoTypeAMD Int32 |
Bundled Patterns
| 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 #