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.NativeResource
Structure describing subgroup support for an implementation.Description
If the
VkPhysicalDeviceSubgroupProperties
structure is included in thepNext
chain ofVkPhysicalDeviceProperties2
, it is filled with the implementation-dependent limits.Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
Member documentation
sType
– the type of this structure.pNext
–NULL
or a pointer to an extension-specific structure.subgroupSize
– the default number of invocations in each subgroup.subgroupSize
is at least 1 if any of the physical device’s queues supportQUEUE_GRAPHICS_BIT
orQUEUE_COMPUTE_BIT
.supportedStages
– a bitfield ofVkShaderStageFlagBits
describing the shader stages that subgroup operations are supported in.supportedStages
will have theSHADER_STAGE_COMPUTE_BIT
bit set if any of the physical device’s queues supportQUEUE_COMPUTE_BIT
.supportedOperations
– a bitmask ofVkSubgroupFeatureFlagBits
specifying the sets of subgroup operations supported on this device.supportedOperations
will have theSUBGROUP_FEATURE_BASIC_BIT
bit set if any of the physical device’s queues supportQUEUE_GRAPHICS_BIT
orQUEUE_COMPUTE_BIT
.quadOperationsInAllStages
– a boolean that specifies whether quad subgroup operations are available in all stages, or are restricted to fragment and compute stages.
Layout
struct VkPhysicalDeviceSubgroupProperties { VkStructureType sType; void * pNext; uint32_t subgroupSize; VkShaderStageFlags supportedStages; VkSubgroupFeatureFlags supportedOperations; VkBool32 quadOperationsInAllStages; }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
VkPhysicalDeviceSubgroupProperties.Buffer
An array ofVkPhysicalDeviceSubgroupProperties
structs.
-
Field Summary
Fields Modifier and Type Field Description static int
ALIGNOF
The struct alignment in bytes.static int
PNEXT
QUADOPERATIONSINALLSTAGESThe struct member offsets.static int
SIZEOF
The struct size in bytes.static int
STYPE
SUBGROUPSIZE
SUPPORTEDOPERATIONS
SUPPORTEDSTAGESThe struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkPhysicalDeviceSubgroupProperties(java.nio.ByteBuffer container)
Creates aVkPhysicalDeviceSubgroupProperties
instance at the current position of the specifiedByteBuffer
container.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkPhysicalDeviceSubgroupProperties
calloc()
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated withmemCalloc
.static VkPhysicalDeviceSubgroupProperties.Buffer
calloc(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated withmemCalloc
.static VkPhysicalDeviceSubgroupProperties
callocStack()
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkPhysicalDeviceSubgroupProperties.Buffer
callocStack(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkPhysicalDeviceSubgroupProperties.Buffer
callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkPhysicalDeviceSubgroupProperties
callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkPhysicalDeviceSubgroupProperties
create()
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated withBufferUtils
.static VkPhysicalDeviceSubgroupProperties.Buffer
create(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated withBufferUtils
.static VkPhysicalDeviceSubgroupProperties
create(long address)
Returns a newVkPhysicalDeviceSubgroupProperties
instance for the specified memory address.static VkPhysicalDeviceSubgroupProperties.Buffer
create(long address, int capacity)
Create aVkPhysicalDeviceSubgroupProperties.Buffer
instance at the specified memory.static VkPhysicalDeviceSubgroupProperties
createSafe(long address)
static VkPhysicalDeviceSubgroupProperties.Buffer
createSafe(long address, int capacity)
static VkPhysicalDeviceSubgroupProperties
malloc()
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated withmemAlloc
.static VkPhysicalDeviceSubgroupProperties.Buffer
malloc(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated withmemAlloc
.static VkPhysicalDeviceSubgroupProperties
mallocStack()
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated on the thread-localMemoryStack
.static VkPhysicalDeviceSubgroupProperties.Buffer
mallocStack(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated on the thread-localMemoryStack
.static VkPhysicalDeviceSubgroupProperties.Buffer
mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated on the specifiedMemoryStack
.static VkPhysicalDeviceSubgroupProperties
mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated on the specifiedMemoryStack
.static long
npNext(long struct)
Unsafe version ofpNext()
.static void
npNext(long struct, long value)
Unsafe version ofpNext
.static int
nquadOperationsInAllStages(long struct)
Unsafe version ofquadOperationsInAllStages()
.static int
nsType(long struct)
Unsafe version ofsType()
.static void
nsType(long struct, int value)
Unsafe version ofsType
.static int
nsubgroupSize(long struct)
Unsafe version ofsubgroupSize()
.static int
nsupportedOperations(long struct)
Unsafe version ofsupportedOperations()
.static int
nsupportedStages(long struct)
Unsafe version ofsupportedStages()
.long
pNext()
Returns the value of thepNext
field.VkPhysicalDeviceSubgroupProperties
pNext(long value)
Sets the specified value to thepNext
field.boolean
quadOperationsInAllStages()
Returns the value of thequadOperationsInAllStages
field.VkPhysicalDeviceSubgroupProperties
set(int sType, long pNext)
Initializes this struct with the specified values.VkPhysicalDeviceSubgroupProperties
set(VkPhysicalDeviceSubgroupProperties src)
Copies the specified struct data to this struct.int
sizeof()
int
sType()
Returns the value of thesType
field.VkPhysicalDeviceSubgroupProperties
sType(int value)
Sets the specified value to thesType
field.int
subgroupSize()
Returns the value of thesubgroupSize
field.int
supportedOperations()
Returns the value of thesupportedOperations
field.int
supportedStages()
Returns the value of thesupportedStages
field.
-
-
-
Constructor Detail
-
VkPhysicalDeviceSubgroupProperties
public VkPhysicalDeviceSubgroupProperties(java.nio.ByteBuffer container)
Creates aVkPhysicalDeviceSubgroupProperties
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
-
sType
public int sType()
Returns the value of thesType
field.
-
pNext
public long pNext()
Returns the value of thepNext
field.
-
subgroupSize
public int subgroupSize()
Returns the value of thesubgroupSize
field.
-
supportedStages
public int supportedStages()
Returns the value of thesupportedStages
field.
-
supportedOperations
public int supportedOperations()
Returns the value of thesupportedOperations
field.
-
quadOperationsInAllStages
public boolean quadOperationsInAllStages()
Returns the value of thequadOperationsInAllStages
field.
-
sType
public VkPhysicalDeviceSubgroupProperties sType(int value)
Sets the specified value 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 newVkPhysicalDeviceSubgroupProperties
instance allocated withmemAlloc
. The instance must be explicitly freed.
-
calloc
public static VkPhysicalDeviceSubgroupProperties calloc()
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated withmemCalloc
. The instance must be explicitly freed.
-
create
public static VkPhysicalDeviceSubgroupProperties create()
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated withBufferUtils
.
-
create
public static VkPhysicalDeviceSubgroupProperties create(long address)
Returns a newVkPhysicalDeviceSubgroupProperties
instance for the specified memory address.
-
createSafe
@Nullable public static VkPhysicalDeviceSubgroupProperties createSafe(long address)
-
malloc
public static VkPhysicalDeviceSubgroupProperties.Buffer malloc(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated withmemAlloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
calloc
public static VkPhysicalDeviceSubgroupProperties.Buffer calloc(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated withmemCalloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
create
public static VkPhysicalDeviceSubgroupProperties.Buffer create(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated withBufferUtils
.- Parameters:
capacity
- the buffer capacity
-
create
public static VkPhysicalDeviceSubgroupProperties.Buffer create(long address, int capacity)
Create aVkPhysicalDeviceSubgroupProperties.Buffer
instance at the specified memory.- Parameters:
address
- the memory addresscapacity
- the buffer capacity
-
createSafe
@Nullable public static VkPhysicalDeviceSubgroupProperties.Buffer createSafe(long address, int capacity)
-
mallocStack
public static VkPhysicalDeviceSubgroupProperties mallocStack()
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated on the thread-localMemoryStack
.
-
callocStack
public static VkPhysicalDeviceSubgroupProperties callocStack()
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.
-
mallocStack
public static VkPhysicalDeviceSubgroupProperties mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocate
-
callocStack
public static VkPhysicalDeviceSubgroupProperties callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocate
-
mallocStack
public static VkPhysicalDeviceSubgroupProperties.Buffer mallocStack(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated on the thread-localMemoryStack
.- Parameters:
capacity
- the buffer capacity
-
callocStack
public static VkPhysicalDeviceSubgroupProperties.Buffer callocStack(int capacity)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.- Parameters:
capacity
- the buffer capacity
-
mallocStack
public static VkPhysicalDeviceSubgroupProperties.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocatecapacity
- the buffer capacity
-
callocStack
public static VkPhysicalDeviceSubgroupProperties.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkPhysicalDeviceSubgroupProperties.Buffer
instance allocated on the specifiedMemoryStack
and 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
.
-
-