Package org.lwjgl.vulkan
Class VkPhysicalDeviceSubgroupProperties
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkPhysicalDeviceSubgroupProperties
-
- All Implemented Interfaces:
java.lang.AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class VkPhysicalDeviceSubgroupProperties extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResourceStructure describing subgroup support for an implementation.Description
If the
VkPhysicalDeviceSubgroupPropertiesstructure is included in thepNextchain of theVkPhysicalDeviceProperties2structure passed toGetPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.If
supportedOperationsincludesSUBGROUP_FEATURE_QUAD_BIT, orshaderSubgroupUniformControlFlowis enabled,subgroupSizemust be greater than or equal to 4.Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
Layout
struct VkPhysicalDeviceSubgroupProperties { VkStructureTypesType(); void *pNext(); uint32_tsubgroupSize(); VkShaderStageFlagssupportedStages(); VkSubgroupFeatureFlagssupportedOperations(); VkBool32quadOperationsInAllStages(); }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVkPhysicalDeviceSubgroupProperties.BufferAn array ofVkPhysicalDeviceSubgroupPropertiesstructs.
-
Field Summary
Fields Modifier and Type Field Description static intALIGNOFThe struct alignment in bytes.static intPNEXT
QUADOPERATIONSINALLSTAGESThe struct member offsets.static intSIZEOFThe struct size in bytes.static intSTYPE
SUBGROUPSIZE
SUPPORTEDOPERATIONS
SUPPORTEDSTAGESThe struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkPhysicalDeviceSubgroupProperties(java.nio.ByteBuffer container)Creates aVkPhysicalDeviceSubgroupPropertiesinstance at the current position of the specifiedByteBuffercontainer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static VkPhysicalDeviceSubgroupPropertiescalloc()Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated withmemCalloc.static VkPhysicalDeviceSubgroupProperties.Buffercalloc(int capacity)Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated withmemCalloc.static VkPhysicalDeviceSubgroupProperties.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkPhysicalDeviceSubgroupPropertiescalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkPhysicalDeviceSubgroupPropertiescallocStack()Deprecated.static VkPhysicalDeviceSubgroupProperties.BuffercallocStack(int capacity)Deprecated.static VkPhysicalDeviceSubgroupProperties.BuffercallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Deprecated.static VkPhysicalDeviceSubgroupPropertiescallocStack(org.lwjgl.system.MemoryStack stack)Deprecated.static VkPhysicalDeviceSubgroupPropertiescreate()Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated withBufferUtils.static VkPhysicalDeviceSubgroupProperties.Buffercreate(int capacity)Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated withBufferUtils.static VkPhysicalDeviceSubgroupPropertiescreate(long address)Returns a newVkPhysicalDeviceSubgroupPropertiesinstance for the specified memory address.static VkPhysicalDeviceSubgroupProperties.Buffercreate(long address, int capacity)Create aVkPhysicalDeviceSubgroupProperties.Bufferinstance at the specified memory.static VkPhysicalDeviceSubgroupPropertiescreateSafe(long address)static VkPhysicalDeviceSubgroupProperties.BuffercreateSafe(long address, int capacity)static VkPhysicalDeviceSubgroupPropertiesmalloc()Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated withmemAlloc.static VkPhysicalDeviceSubgroupProperties.Buffermalloc(int capacity)Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated withmemAlloc.static VkPhysicalDeviceSubgroupProperties.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated on the specifiedMemoryStack.static VkPhysicalDeviceSubgroupPropertiesmalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated on the specifiedMemoryStack.static VkPhysicalDeviceSubgroupPropertiesmallocStack()Deprecated.static VkPhysicalDeviceSubgroupProperties.BuffermallocStack(int capacity)Deprecated.static VkPhysicalDeviceSubgroupProperties.BuffermallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Deprecated.static VkPhysicalDeviceSubgroupPropertiesmallocStack(org.lwjgl.system.MemoryStack stack)Deprecated.static longnpNext(long struct)Unsafe version ofpNext().static voidnpNext(long struct, long value)Unsafe version ofpNext.static intnquadOperationsInAllStages(long struct)Unsafe version ofquadOperationsInAllStages().static intnsType(long struct)Unsafe version ofsType().static voidnsType(long struct, int value)Unsafe version ofsType.static intnsubgroupSize(long struct)Unsafe version ofsubgroupSize().static intnsupportedOperations(long struct)Unsafe version ofsupportedOperations().static intnsupportedStages(long struct)Unsafe version ofsupportedStages().longpNext()NULLor a pointer to a structure extending this structure.VkPhysicalDeviceSubgroupPropertiespNext(long value)Sets the specified value to thepNext()field.booleanquadOperationsInAllStages()a boolean specifying whether quad group operations are available in all stages, or are restricted to fragment and compute stages.VkPhysicalDeviceSubgroupPropertiesset(int sType, long pNext)Initializes this struct with the specified values.VkPhysicalDeviceSubgroupPropertiesset(VkPhysicalDeviceSubgroupProperties src)Copies the specified struct data to this struct.intsizeof()intsType()the type of this structure.VkPhysicalDeviceSubgroupPropertiessType(int value)Sets the specified value to thesType()field.VkPhysicalDeviceSubgroupPropertiessType$Default()Sets theSTRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIESvalue to thesType()field.intsubgroupSize()the default number of invocations in each subgroup.intsupportedOperations()a bitmask ofVkSubgroupFeatureFlagBitsspecifying the sets of group operations with subgroup scope supported on this device.intsupportedStages()a bitfield ofVkShaderStageFlagBitsdescribing the shader stages that group operations with subgroup scope are supported in.
-
-
-
Constructor Detail
-
VkPhysicalDeviceSubgroupProperties
public VkPhysicalDeviceSubgroupProperties(java.nio.ByteBuffer container)
Creates aVkPhysicalDeviceSubgroupPropertiesinstance at the current position of the specifiedByteBuffercontainer. 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:
sizeofin classorg.lwjgl.system.Struct
-
sType
public int sType()
the type of this structure.
-
pNext
public long pNext()
NULLor a pointer to a structure extending this structure.
-
subgroupSize
public int subgroupSize()
the default number of invocations in each subgroup.subgroupSizeis at least 1 if any of the physical device’s queues supportQUEUE_GRAPHICS_BITorQUEUE_COMPUTE_BIT.subgroupSizeis a power-of-two.
-
supportedStages
public int supportedStages()
a bitfield ofVkShaderStageFlagBitsdescribing the shader stages that group operations with subgroup scope are supported in.supportedStageswill have theSHADER_STAGE_COMPUTE_BITbit set if any of the physical device’s queues supportQUEUE_COMPUTE_BIT.
-
supportedOperations
public int supportedOperations()
a bitmask ofVkSubgroupFeatureFlagBitsspecifying the sets of group operations with subgroup scope supported on this device.supportedOperationswill have theSUBGROUP_FEATURE_BASIC_BITbit set if any of the physical device’s queues supportQUEUE_GRAPHICS_BITorQUEUE_COMPUTE_BIT.
-
quadOperationsInAllStages
public boolean quadOperationsInAllStages()
a boolean specifying whether quad group operations are available in all stages, or are restricted to fragment and compute stages.
-
sType
public VkPhysicalDeviceSubgroupProperties sType(int value)
Sets the specified value to thesType()field.
-
sType$Default
public VkPhysicalDeviceSubgroupProperties sType$Default()
Sets theSTRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIESvalue to thesType()field.
-
pNext
public VkPhysicalDeviceSubgroupProperties pNext(long value)
Sets the specified value to thepNext()field.
-
set
public VkPhysicalDeviceSubgroupProperties set(int sType, long pNext)
Initializes this struct with the specified values.
-
set
public VkPhysicalDeviceSubgroupProperties set(VkPhysicalDeviceSubgroupProperties src)
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
public static VkPhysicalDeviceSubgroupProperties malloc()
Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated withmemAlloc. The instance must be explicitly freed.
-
calloc
public static VkPhysicalDeviceSubgroupProperties calloc()
Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated withmemCalloc. The instance must be explicitly freed.
-
create
public static VkPhysicalDeviceSubgroupProperties create()
Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated withBufferUtils.
-
create
public static VkPhysicalDeviceSubgroupProperties create(long address)
Returns a newVkPhysicalDeviceSubgroupPropertiesinstance for the specified memory address.
-
createSafe
@Nullable public static VkPhysicalDeviceSubgroupProperties createSafe(long address)
-
malloc
public static VkPhysicalDeviceSubgroupProperties.Buffer malloc(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
public static VkPhysicalDeviceSubgroupProperties.Buffer calloc(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
public static VkPhysicalDeviceSubgroupProperties.Buffer create(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
public static VkPhysicalDeviceSubgroupProperties.Buffer create(long address, int capacity)
Create aVkPhysicalDeviceSubgroupProperties.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
@Nullable public static VkPhysicalDeviceSubgroupProperties.Buffer createSafe(long address, int capacity)
-
mallocStack
@Deprecated public static VkPhysicalDeviceSubgroupProperties mallocStack()
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead.
-
callocStack
@Deprecated public static VkPhysicalDeviceSubgroupProperties callocStack()
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead.
-
mallocStack
@Deprecated public static VkPhysicalDeviceSubgroupProperties mallocStack(org.lwjgl.system.MemoryStack stack)
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead.
-
callocStack
@Deprecated public static VkPhysicalDeviceSubgroupProperties callocStack(org.lwjgl.system.MemoryStack stack)
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead.
-
mallocStack
@Deprecated public static VkPhysicalDeviceSubgroupProperties.Buffer mallocStack(int capacity)
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead.
-
callocStack
@Deprecated public static VkPhysicalDeviceSubgroupProperties.Buffer callocStack(int capacity)
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead.
-
mallocStack
@Deprecated public static VkPhysicalDeviceSubgroupProperties.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead.
-
callocStack
@Deprecated public static VkPhysicalDeviceSubgroupProperties.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead.
-
malloc
public static VkPhysicalDeviceSubgroupProperties malloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
public static VkPhysicalDeviceSubgroupProperties calloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupPropertiesinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkPhysicalDeviceSubgroupProperties.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
calloc
public static VkPhysicalDeviceSubgroupProperties.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
nsType
public static int nsType(long struct)
Unsafe version ofsType().
-
npNext
public static long npNext(long struct)
Unsafe version ofpNext().
-
nsubgroupSize
public static int nsubgroupSize(long struct)
Unsafe version ofsubgroupSize().
-
nsupportedStages
public static int nsupportedStages(long struct)
Unsafe version ofsupportedStages().
-
nsupportedOperations
public static int nsupportedOperations(long struct)
Unsafe version ofsupportedOperations().
-
nquadOperationsInAllStages
public static int nquadOperationsInAllStages(long struct)
Unsafe version ofquadOperationsInAllStages().
-
nsType
public static void nsType(long struct, int value)Unsafe version ofsType.
-
npNext
public static void npNext(long struct, long value)Unsafe version ofpNext.
-
-