Class VkPhysicalDeviceShaderCorePropertiesAMD

  • All Implemented Interfaces:
    java.lang.AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

    public class VkPhysicalDeviceShaderCorePropertiesAMD
    extends org.lwjgl.system.Struct
    implements org.lwjgl.system.NativeResource
    Structure describing shader core properties that can be supported by an implementation.
    Description

    If the VkPhysicalDeviceShaderCorePropertiesAMD structure is included in the pNext chain of VkPhysicalDeviceProperties2, it is filled with the implementation-dependent limits.

    Valid Usage (Implicit)

    Member documentation

    • sType – the type of this structure.
    • pNextNULL or a pointer to an extension-specific structure.
    • shaderEngineCount – an unsigned integer value indicating the number of shader engines found inside the shader core of the physical device.
    • shaderArraysPerEngineCount – an unsigned integer value indicating the number of shader arrays inside a shader engine. Each shader array has its own scan converter, set of compute units, and a render back end (color and depth buffers). Shader arrays within a shader engine share shader processor input (wave launcher) and shader export (export buffer) units. Currently, a shader engine can have one or two shader arrays.
    • computeUnitsPerShaderArray – an unsigned integer value indicating the physical number of compute units within a shader array. The active number of compute units in a shader array may be lower. A compute unit houses a set of SIMDs along with a sequencer module and a local data store.
    • simdPerComputeUnit – an unsigned integer value indicating the number of SIMDs inside a compute unit. Each SIMD processes a single instruction at a time.
    • wavefrontSize – an unsigned integer value indicating the maximum size of a subgroup.
    • sgprsPerSimd – an unsigned integer value indicating the number of physical Scalar General Purpose Registers (SGPRs) per SIMD.
    • minSgprAllocation – an unsigned integer value indicating the minimum number of SGPRs allocated for a wave.
    • maxSgprAllocation – an unsigned integer value indicating the maximum number of SGPRs allocated for a wave.
    • sgprAllocationGranularity – an unsigned integer value indicating the granularity of SGPR allocation for a wave.
    • vgprsPerSimd – an unsigned integer value indicating the number of physical Vector General Purpose Registers (VGPRs) per SIMD.
    • minVgprAllocation – an unsigned integer value indicating the minimum number of VGPRs allocated for a wave.
    • maxVgprAllocation – an unsigned integer value indicating the maximum number of VGPRs allocated for a wave.
    • vgprAllocationGranularity – an unsigned integer value indicating the granularity of VGPR allocation for a wave.

    Layout

    
     struct VkPhysicalDeviceShaderCorePropertiesAMD {
         VkStructureType sType;
         void * pNext;
         uint32_t shaderEngineCount;
         uint32_t shaderArraysPerEngineCount;
         uint32_t computeUnitsPerShaderArray;
         uint32_t simdPerComputeUnit;
         uint32_t wavefrontsPerSimd;
         uint32_t wavefrontSize;
         uint32_t sgprsPerSimd;
         uint32_t minSgprAllocation;
         uint32_t maxSgprAllocation;
         uint32_t sgprAllocationGranularity;
         uint32_t vgprsPerSimd;
         uint32_t minVgprAllocation;
         uint32_t maxVgprAllocation;
         uint32_t vgprAllocationGranularity;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • STYPE, PNEXT, SHADERENGINECOUNT, SHADERARRAYSPERENGINECOUNT, COMPUTEUNITSPERSHADERARRAY, SIMDPERCOMPUTEUNIT, WAVEFRONTSPERSIMD, WAVEFRONTSIZE, SGPRSPERSIMD, MINSGPRALLOCATION, MAXSGPRALLOCATION, SGPRALLOCATIONGRANULARITY, VGPRSPERSIMD, MINVGPRALLOCATION, MAXVGPRALLOCATION, VGPRALLOCATIONGRANULARITY

        The struct member offsets.
    • Constructor Detail

      • VkPhysicalDeviceShaderCorePropertiesAMD

        public VkPhysicalDeviceShaderCorePropertiesAMD​(java.nio.ByteBuffer container)
        Creates a VkPhysicalDeviceShaderCorePropertiesAMD 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
      • sType

        public int sType()
        Returns the value of the sType field.
      • pNext

        public long pNext()
        Returns the value of the pNext field.
      • shaderEngineCount

        public int shaderEngineCount()
        Returns the value of the shaderEngineCount field.
      • shaderArraysPerEngineCount

        public int shaderArraysPerEngineCount()
        Returns the value of the shaderArraysPerEngineCount field.
      • computeUnitsPerShaderArray

        public int computeUnitsPerShaderArray()
        Returns the value of the computeUnitsPerShaderArray field.
      • simdPerComputeUnit

        public int simdPerComputeUnit()
        Returns the value of the simdPerComputeUnit field.
      • wavefrontsPerSimd

        public int wavefrontsPerSimd()
        Returns the value of the wavefrontsPerSimd field.
      • wavefrontSize

        public int wavefrontSize()
        Returns the value of the wavefrontSize field.
      • sgprsPerSimd

        public int sgprsPerSimd()
        Returns the value of the sgprsPerSimd field.
      • minSgprAllocation

        public int minSgprAllocation()
        Returns the value of the minSgprAllocation field.
      • maxSgprAllocation

        public int maxSgprAllocation()
        Returns the value of the maxSgprAllocation field.
      • sgprAllocationGranularity

        public int sgprAllocationGranularity()
        Returns the value of the sgprAllocationGranularity field.
      • vgprsPerSimd

        public int vgprsPerSimd()
        Returns the value of the vgprsPerSimd field.
      • minVgprAllocation

        public int minVgprAllocation()
        Returns the value of the minVgprAllocation field.
      • maxVgprAllocation

        public int maxVgprAllocation()
        Returns the value of the maxVgprAllocation field.
      • vgprAllocationGranularity

        public int vgprAllocationGranularity()
        Returns the value of the vgprAllocationGranularity field.
      • malloc

        public static VkPhysicalDeviceShaderCorePropertiesAMD malloc()
        Returns a new VkPhysicalDeviceShaderCorePropertiesAMD instance allocated with memAlloc. The instance must be explicitly freed.
      • calloc

        public static VkPhysicalDeviceShaderCorePropertiesAMD calloc()
        Returns a new VkPhysicalDeviceShaderCorePropertiesAMD instance allocated with memCalloc. The instance must be explicitly freed.
      • callocStack

        public static VkPhysicalDeviceShaderCorePropertiesAMD callocStack()
        Returns a new VkPhysicalDeviceShaderCorePropertiesAMD instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      • mallocStack

        public static VkPhysicalDeviceShaderCorePropertiesAMD mallocStack​(org.lwjgl.system.MemoryStack stack)
        Returns a new VkPhysicalDeviceShaderCorePropertiesAMD instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
      • callocStack

        public static VkPhysicalDeviceShaderCorePropertiesAMD callocStack​(org.lwjgl.system.MemoryStack stack)
        Returns a new VkPhysicalDeviceShaderCorePropertiesAMD instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
      • nsType

        public static int nsType​(long struct)
        Unsafe version of sType().
      • npNext

        public static long npNext​(long struct)
        Unsafe version of pNext().
      • nshaderEngineCount

        public static int nshaderEngineCount​(long struct)
        Unsafe version of shaderEngineCount().
      • nshaderArraysPerEngineCount

        public static int nshaderArraysPerEngineCount​(long struct)
        Unsafe version of shaderArraysPerEngineCount().
      • ncomputeUnitsPerShaderArray

        public static int ncomputeUnitsPerShaderArray​(long struct)
        Unsafe version of computeUnitsPerShaderArray().
      • nsimdPerComputeUnit

        public static int nsimdPerComputeUnit​(long struct)
        Unsafe version of simdPerComputeUnit().
      • nwavefrontsPerSimd

        public static int nwavefrontsPerSimd​(long struct)
        Unsafe version of wavefrontsPerSimd().
      • nwavefrontSize

        public static int nwavefrontSize​(long struct)
        Unsafe version of wavefrontSize().
      • nsgprsPerSimd

        public static int nsgprsPerSimd​(long struct)
        Unsafe version of sgprsPerSimd().
      • nminSgprAllocation

        public static int nminSgprAllocation​(long struct)
        Unsafe version of minSgprAllocation().
      • nmaxSgprAllocation

        public static int nmaxSgprAllocation​(long struct)
        Unsafe version of maxSgprAllocation().
      • nsgprAllocationGranularity

        public static int nsgprAllocationGranularity​(long struct)
        Unsafe version of sgprAllocationGranularity().
      • nvgprsPerSimd

        public static int nvgprsPerSimd​(long struct)
        Unsafe version of vgprsPerSimd().
      • nminVgprAllocation

        public static int nminVgprAllocation​(long struct)
        Unsafe version of minVgprAllocation().
      • nmaxVgprAllocation

        public static int nmaxVgprAllocation​(long struct)
        Unsafe version of maxVgprAllocation().
      • nvgprAllocationGranularity

        public static int nvgprAllocationGranularity​(long struct)
        Unsafe version of vgprAllocationGranularity().
      • nsType

        public static void nsType​(long struct,
                                  int value)
        Unsafe version of sType.
      • npNext

        public static void npNext​(long struct,
                                  long value)
        Unsafe version of pNext.