Class VkShaderStatisticsInfoAMD
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkShaderStatisticsInfoAMD
-
- All Implemented Interfaces:
org.lwjgl.system.Pointer
public class VkShaderStatisticsInfoAMD extends org.lwjgl.system.Struct
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 toGetShaderInfoAMD
, the same output information may be returned for all such shader stage queries.The number of available VGPRs and SGPRs (
numAvailableVgprs
andnumAvailableSgprs
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
Member documentation
shaderStageMask
– are the combination of logical shader stages contained within this shader.resourceUsage
– an instance ofVkShaderResourceUsageAMD
describing internal physical device resources used by this shader.numPhysicalVgprs
– the maximum number of vector instruction general-purpose registers (VGPRs) available to the physical device.numPhysicalSgprs
– the maximum number of scalar instruction general-purpose registers (SGPRs) available to the physical device.numAvailableVgprs
– the maximum limit of VGPRs made available to the shader compiler.numAvailableSgprs
– the maximum limit of SGPRs made available to the shader compiler.computeWorkGroupSize[3]
– the local workgroup size of this shader in { X, Y, Z } dimensions.
Layout
struct VkShaderStatisticsInfoAMD { VkShaderStageFlags shaderStageMask;
VkShaderResourceUsageAMD
resourceUsage; uint32_t numPhysicalVgprs; uint32_t numPhysicalSgprs; uint32_t numAvailableVgprs; uint32_t numAvailableSgprs; uint32_t computeWorkGroupSize[3]; }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
VkShaderStatisticsInfoAMD.Buffer
An array ofVkShaderStatisticsInfoAMD
structs.
-
Field Summary
Fields Modifier and Type Field Description static int
ALIGNOF
The struct alignment in bytes.static int
COMPUTEWORKGROUPSIZE
NUMAVAILABLESGPRS
NUMAVAILABLEVGPRS
NUMPHYSICALSGPRS
NUMPHYSICALVGPRS
RESOURCEUSAGE
SHADERSTAGEMASKThe struct member offsets.static int
SIZEOF
The struct size in bytes.
-
Constructor Summary
Constructors Constructor Description VkShaderStatisticsInfoAMD(java.nio.ByteBuffer container)
Creates aVkShaderStatisticsInfoAMD
instance at the current position of the specifiedByteBuffer
container.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.nio.IntBuffer
computeWorkGroupSize()
Returns aIntBuffer
view of thecomputeWorkGroupSize
field.int
computeWorkGroupSize(int index)
Returns the value at the specified index of thecomputeWorkGroupSize
field.static VkShaderStatisticsInfoAMD
create(long address)
Returns a newVkShaderStatisticsInfoAMD
instance for the specified memory address.static VkShaderStatisticsInfoAMD.Buffer
create(long address, int capacity)
Create aVkShaderStatisticsInfoAMD.Buffer
instance at the specified memory.static VkShaderStatisticsInfoAMD
createSafe(long address)
static VkShaderStatisticsInfoAMD.Buffer
createSafe(long address, int capacity)
static java.nio.IntBuffer
ncomputeWorkGroupSize(long struct)
Unsafe version ofcomputeWorkGroupSize()
.static int
ncomputeWorkGroupSize(long struct, int index)
Unsafe version ofcomputeWorkGroupSize
.static int
nnumAvailableSgprs(long struct)
Unsafe version ofnumAvailableSgprs()
.static int
nnumAvailableVgprs(long struct)
Unsafe version ofnumAvailableVgprs()
.static int
nnumPhysicalSgprs(long struct)
Unsafe version ofnumPhysicalSgprs()
.static int
nnumPhysicalVgprs(long struct)
Unsafe version ofnumPhysicalVgprs()
.static VkShaderResourceUsageAMD
nresourceUsage(long struct)
Unsafe version ofresourceUsage()
.static int
nshaderStageMask(long struct)
Unsafe version ofshaderStageMask()
.int
numAvailableSgprs()
Returns the value of thenumAvailableSgprs
field.int
numAvailableVgprs()
Returns the value of thenumAvailableVgprs
field.int
numPhysicalSgprs()
Returns the value of thenumPhysicalSgprs
field.int
numPhysicalVgprs()
Returns the value of thenumPhysicalVgprs
field.VkShaderResourceUsageAMD
resourceUsage()
Returns aVkShaderResourceUsageAMD
view of theresourceUsage
field.int
shaderStageMask()
Returns the value of theshaderStageMask
field.int
sizeof()
-
-
-
Constructor Detail
-
VkShaderStatisticsInfoAMD
public VkShaderStatisticsInfoAMD(java.nio.ByteBuffer container)
Creates aVkShaderStatisticsInfoAMD
instance at the current position of the specifiedByteBuffer
container. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Detail
-
sizeof
public int sizeof()
- Specified by:
sizeof
in classorg.lwjgl.system.Struct
-
shaderStageMask
public int shaderStageMask()
Returns the value of theshaderStageMask
field.
-
resourceUsage
public VkShaderResourceUsageAMD resourceUsage()
Returns aVkShaderResourceUsageAMD
view of theresourceUsage
field.
-
numPhysicalVgprs
public int numPhysicalVgprs()
Returns the value of thenumPhysicalVgprs
field.
-
numPhysicalSgprs
public int numPhysicalSgprs()
Returns the value of thenumPhysicalSgprs
field.
-
numAvailableVgprs
public int numAvailableVgprs()
Returns the value of thenumAvailableVgprs
field.
-
numAvailableSgprs
public int numAvailableSgprs()
Returns the value of thenumAvailableSgprs
field.
-
computeWorkGroupSize
public java.nio.IntBuffer computeWorkGroupSize()
Returns aIntBuffer
view of thecomputeWorkGroupSize
field.
-
computeWorkGroupSize
public int computeWorkGroupSize(int index)
Returns the value at the specified index of thecomputeWorkGroupSize
field.
-
create
public static VkShaderStatisticsInfoAMD create(long address)
Returns a newVkShaderStatisticsInfoAMD
instance for the specified memory address.
-
createSafe
@Nullable public static VkShaderStatisticsInfoAMD createSafe(long address)
-
create
public static VkShaderStatisticsInfoAMD.Buffer create(long address, int capacity)
Create aVkShaderStatisticsInfoAMD.Buffer
instance at the specified memory.- Parameters:
address
- the memory addresscapacity
- the buffer capacity
-
createSafe
@Nullable public static VkShaderStatisticsInfoAMD.Buffer createSafe(long address, int capacity)
-
nshaderStageMask
public static int nshaderStageMask(long struct)
Unsafe version ofshaderStageMask()
.
-
nresourceUsage
public static VkShaderResourceUsageAMD nresourceUsage(long struct)
Unsafe version ofresourceUsage()
.
-
nnumPhysicalVgprs
public static int nnumPhysicalVgprs(long struct)
Unsafe version ofnumPhysicalVgprs()
.
-
nnumPhysicalSgprs
public static int nnumPhysicalSgprs(long struct)
Unsafe version ofnumPhysicalSgprs()
.
-
nnumAvailableVgprs
public static int nnumAvailableVgprs(long struct)
Unsafe version ofnumAvailableVgprs()
.
-
nnumAvailableSgprs
public static int nnumAvailableSgprs(long struct)
Unsafe version ofnumAvailableSgprs()
.
-
ncomputeWorkGroupSize
public static java.nio.IntBuffer ncomputeWorkGroupSize(long struct)
Unsafe version ofcomputeWorkGroupSize()
.
-
ncomputeWorkGroupSize
public static int ncomputeWorkGroupSize(long struct, int index)
Unsafe version ofcomputeWorkGroupSize
.
-
-