Class 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 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

    VkShaderResourceUsageAMD

    Layout

    
     struct VkShaderStatisticsInfoAMD {
         VkShaderStageFlags shaderStageMask();
         VkShaderResourceUsageAMD resourceUsage();
         uint32_t numPhysicalVgprs();
         uint32_t numPhysicalSgprs();
         uint32_t numAvailableVgprs();
         uint32_t numAvailableSgprs();
         uint32_t computeWorkGroupSize()[3];
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • SHADERSTAGEMASK, RESOURCEUSAGE, NUMPHYSICALVGPRS, NUMPHYSICALSGPRS, NUMAVAILABLEVGPRS, NUMAVAILABLESGPRS, COMPUTEWORKGROUPSIZE

        The struct member offsets.
    • Constructor Detail

      • VkShaderStatisticsInfoAMD

        public VkShaderStatisticsInfoAMD​(java.nio.ByteBuffer container)
        Creates a VkShaderStatisticsInfoAMD instance at the current position of the specified ByteBuffer 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 class org.lwjgl.system.Struct
      • shaderStageMask

        public int shaderStageMask()
        are the combination of logical shader stages contained within this shader.
      • numPhysicalVgprs

        public int numPhysicalVgprs()
        the maximum number of vector instruction general-purpose registers (VGPRs) available to the physical device.
      • numPhysicalSgprs

        public int numPhysicalSgprs()
        the maximum number of scalar instruction general-purpose registers (SGPRs) available to the physical device.
      • numAvailableVgprs

        public int numAvailableVgprs()
        the maximum limit of VGPRs made available to the shader compiler.
      • numAvailableSgprs

        public int numAvailableSgprs()
        the maximum limit of SGPRs made available to the shader compiler.
      • computeWorkGroupSize

        public java.nio.IntBuffer computeWorkGroupSize()
        
        public int computeWorkGroupSize​(int index)
        
        the local workgroup size of this shader in { X, Y, Z } dimensions.
      • create

        public static VkShaderStatisticsInfoAMD create​(long address)
        Returns a new VkShaderStatisticsInfoAMD instance for the specified memory address.
      • nshaderStageMask

        public static int nshaderStageMask​(long struct)
        Unsafe version of shaderStageMask().
      • nnumPhysicalVgprs

        public static int nnumPhysicalVgprs​(long struct)
        Unsafe version of numPhysicalVgprs().
      • nnumPhysicalSgprs

        public static int nnumPhysicalSgprs​(long struct)
        Unsafe version of numPhysicalSgprs().
      • nnumAvailableVgprs

        public static int nnumAvailableVgprs​(long struct)
        Unsafe version of numAvailableVgprs().
      • nnumAvailableSgprs

        public static int nnumAvailableSgprs​(long struct)
        Unsafe version of numAvailableSgprs().
      • ncomputeWorkGroupSize

        public static java.nio.IntBuffer ncomputeWorkGroupSize​(long struct)
        Unsafe version of computeWorkGroupSize().
      • ncomputeWorkGroupSize

        public static int ncomputeWorkGroupSize​(long struct,
                                                int index)
        Unsafe version of computeWorkGroupSize.