Top Description Inners Fields Constructors Methods
org.lwjgl.vulkan

public Class VkPhysicalDeviceFragmentShadingRatePropertiesKHR

extends Struct<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>
implements NativeResource
Class Inheritance
All Implemented Interfaces
org.lwjgl.system.NativeResource, java.lang.AutoCloseable
Imports
javax.annotation.*, java.nio.*, org.lwjgl.*, org.lwjgl.system.*

Structure describing variable fragment shading rate limits that can be supported by an implementation.
Description
Note

Multiplication of the combiner rates using the fragment width/height in linear space is equivalent to an addition of those values in log2 space. Some implementations inadvertently implemented an addition in linear space due to unclear requirements originating outside of this specification. This resulted in fragmentShadingRateStrictMultiplyCombiner being added. Fortunately, this only affects situations where a rate of 1 in either dimension is combined with another rate of 1. All other combinations result in the exact same result as if multiplication was performed in linear space due to the clamping logic, and the fact that both the sum and product of 2 and 2 are equal. In many cases, this limit will not affect the correct operation of applications.

If the VkPhysicalDeviceFragmentShadingRatePropertiesKHR structure is included in the pNext chain of the VkPhysicalDeviceProperties2 structure passed to GetPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

These properties are related to fragment shading rates.

Valid Usage (Implicit)
See Also

VkExtent2D

Layout


struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
    VkStructureType sType;
    void * pNext;
    VkExtent2D minFragmentShadingRateAttachmentTexelSize;
    VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
    uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
    VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
    VkBool32 layeredShadingRateAttachments;
    VkBool32 fragmentShadingRateNonTrivialCombinerOps;
    VkExtent2D maxFragmentSize;
    uint32_t maxFragmentSizeAspectRatio;
    uint32_t maxFragmentShadingRateCoverageSamples;
    VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
    VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
    VkBool32 fragmentShadingRateWithSampleMask;
    VkBool32 fragmentShadingRateWithShaderSampleMask;
    VkBool32 fragmentShadingRateWithConservativeRasterization;
    VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
    VkBool32 fragmentShadingRateWithCustomSampleLocations;
    VkBool32 fragmentShadingRateStrictMultiplyCombiner;
}

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
public static final int
ALIGNOF

The struct alignment in bytes.

public static final int
FRAGMENTSHADINGRATENONTRIVIALCOMBINEROPS

The struct member offsets.

public static final int
public static final int
public static final int
public static final int
public static final int
FRAGMENTSHADINGRATEWITHSAMPLEMASK

The struct member offsets.

public static final int
public static final int
FRAGMENTSHADINGRATEWITHSHADERSAMPLEMASK

The struct member offsets.

public static final int
LAYEREDSHADINGRATEATTACHMENTS

The struct member offsets.

public static final int
public static final int
public static final int
MAXFRAGMENTSHADINGRATECOVERAGESAMPLES

The struct member offsets.

public static final int
public static final int
MAXFRAGMENTSIZE

The struct member offsets.

public static final int
MAXFRAGMENTSIZEASPECTRATIO

The struct member offsets.

public static final int
public static final int
PNEXT

The struct member offsets.

public static final int
public static final int
SIZEOF

The struct size in bytes.

public static final int
STYPE

The struct member offsets.

Inherited from org.lwjgl.system.Struct:
containerDEFAULT_ALIGN_ASDEFAULT_PACK_ALIGNMENT

Constructor Summary

AccessConstructor and Description
protected
public
VkPhysicalDeviceFragmentShadingRatePropertiesKHR(ByteBuffer container)

Creates a VkPhysicalDeviceFragmentShadingRatePropertiesKHR instance at the current position of the specified ByteBuffer container.

Method Summary

Modifier and TypeMethod and Description
public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR
calloc()

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR instance allocated with memCalloc.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer
calloc(int
the buffer capacity
capacity
)

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer instance allocated with memCalloc.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR
calloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR instance allocated on the specified MemoryStack and initializes all its bits to zero.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer
calloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.

protected VkPhysicalDeviceFragmentShadingRatePropertiesKHR
create(long
the struct memory address
address
,
ByteBuffer
an optional container buffer, to be referenced strongly by the struct instance.
container
)

Implements abstract org.lwjgl.system.Struct.create.

Similar to the constructor, but returns the exact type of the Struct subclass.
public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR
create()

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR instance allocated with BufferUtils.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR
create(long address)

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR instance for the specified memory address.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer
create(int
the buffer capacity
capacity
)

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer instance allocated with BufferUtils.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer
create(long
the memory address
address
,
int
the buffer capacity
capacity
)

Create a VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer instance at the specified memory.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR
createSafe(long address)

Like create, but returns null if address is NULL.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer
createSafe(long address, int capacity)

Like create, but returns null if address is NULL.

public boolean
fragmentShadingRateNonTrivialCombinerOps()

specifies whether VkFragmentShadingRateCombinerOpKHR enums other than FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR can be used.

public boolean
fragmentShadingRateStrictMultiplyCombiner()

specifies whether FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR accurately performs a multiplication or not.

public boolean
fragmentShadingRateWithConservativeRasterization()

specifies whether conservative rasterization is supported for multi-pixel fragments.

public boolean
fragmentShadingRateWithCustomSampleLocations()

specifies whether custom sample locations are supported for multi-pixel fragments.

public boolean
fragmentShadingRateWithFragmentShaderInterlock()

specifies whether fragment shader interlock is supported for multi-pixel fragments.

public boolean
fragmentShadingRateWithSampleMask()

specifies whether the implementation supports setting valid bits of VkPipelineMultisampleStateCreateInfo::pSampleMask to 0 for multi-pixel fragments.

public boolean
fragmentShadingRateWithShaderDepthStencilWrites()

specifies whether the implementation supports writing FragDepth or FragStencilRefEXT from a fragment shader for multi-pixel fragments.

public boolean
fragmentShadingRateWithShaderSampleMask()

specifies whether the implementation supports reading or writing SampleMask for multi-pixel fragments.

public boolean
layeredShadingRateAttachments()

specifies whether a shading rate attachment image view can be created with multiple layers.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR
malloc()

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR instance allocated with memAlloc.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer
malloc(int
the buffer capacity
capacity
)

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer instance allocated with memAlloc.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR
malloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR instance allocated on the specified MemoryStack.

public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer
malloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new VkPhysicalDeviceFragmentShadingRatePropertiesKHR.Buffer instance allocated on the specified MemoryStack.

public VkExtent2D
maxFragmentShadingRateAttachmentTexelSize()

indicates maximum supported width and height of the portion of the framebuffer corresponding to each texel in a fragment shading rate attachment.

public int
maxFragmentShadingRateAttachmentTexelSizeAspectRatio()

indicates the maximum ratio between the width and height of the portion of the framebuffer corresponding to each texel in a fragment shading rate attachment.

public int
maxFragmentShadingRateCoverageSamples()

specifies the maximum number of coverage samples supported in a single fragment.

public int
maxFragmentShadingRateRasterizationSamples()

a VkSampleCountFlagBits value specifying the maximum sample rate supported when a fragment covers multiple pixels.

public VkExtent2D
maxFragmentSize()

indicates the maximum supported width and height of a fragment.

public int
maxFragmentSizeAspectRatio()

indicates the maximum ratio between the width and height of a fragment.

public VkExtent2D
minFragmentShadingRateAttachmentTexelSize()

indicates minimum supported width and height of the portion of the framebuffer corresponding to each texel in a fragment shading rate attachment.

public static int
public static int
public static int
public static int
public static int
public static int
public static int
public static int
public static int
public static VkExtent2D
public static int
public static int
public static int
public static VkExtent2D
nmaxFragmentSize(long struct)

Unsafe version of maxFragmentSize.

public static int
public static VkExtent2D
public static long
npNext(long struct)

Unsafe version of pNext.

public static void
npNext(long struct, long value)

Unsafe version of pNext.

public static int
public static int
nsType(long struct)

Unsafe version of sType.

public static void
nsType(long struct, int value)

Unsafe version of sType.

public long
pNext()

NULL or a pointer to a structure extending this structure.

public VkPhysicalDeviceFragmentShadingRatePropertiesKHR
pNext(long value)

Sets the specified value to the pNext field.

public boolean
primitiveFragmentShadingRateWithMultipleViewports()

specifies whether the primitive fragment shading rate can be used when multiple viewports are used.

public VkPhysicalDeviceFragmentShadingRatePropertiesKHR
set(int sType, long pNext)

Initializes this struct with the specified values.

public VkPhysicalDeviceFragmentShadingRatePropertiesKHR

Returns:

this struct
set
(VkPhysicalDeviceFragmentShadingRatePropertiesKHR
the source struct
src
)

Copies the specified struct data to this struct.

public int
sizeof()

Implements abstract org.lwjgl.system.Struct.sizeof.

Returns sizeof(struct).
public int
sType()

a VkStructureType value identifying this structure.

public VkPhysicalDeviceFragmentShadingRatePropertiesKHR
sType(int value)

Sets the specified value to the sType field.

public VkPhysicalDeviceFragmentShadingRatePropertiesKHR
Inherited from org.lwjgl.system.Struct:
__array__array__array__checkContainer__checkMalloc__create__getContainer__getContainer__member__member__member__padding__padding__struct__struct__union__unionclearfreeisNullvalidate