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.
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;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class |
| Modifier and Type | Field 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 | FRAGMENTSHADINGRATESTRICTMULTIPLYCOMBINER
The struct member offsets. |
| public static final int | FRAGMENTSHADINGRATEWITHCONSERVATIVERASTERIZATION
The struct member offsets. |
| public static final int | FRAGMENTSHADINGRATEWITHCUSTOMSAMPLELOCATIONS
The struct member offsets. |
| public static final int | FRAGMENTSHADINGRATEWITHFRAGMENTSHADERINTERLOCK
The struct member offsets. |
| public static final int | FRAGMENTSHADINGRATEWITHSAMPLEMASK
The struct member offsets. |
| public static final int | FRAGMENTSHADINGRATEWITHSHADERDEPTHSTENCILWRITES
The struct member offsets. |
| public static final int | FRAGMENTSHADINGRATEWITHSHADERSAMPLEMASK
The struct member offsets. |
| public static final int | LAYEREDSHADINGRATEATTACHMENTS
The struct member offsets. |
| public static final int | MAXFRAGMENTSHADINGRATEATTACHMENTTEXELSIZE
The struct member offsets. |
| public static final int | MAXFRAGMENTSHADINGRATEATTACHMENTTEXELSIZEASPECTRATIO
The struct member offsets. |
| public static final int | MAXFRAGMENTSHADINGRATECOVERAGESAMPLES
The struct member offsets. |
| public static final int | MAXFRAGMENTSHADINGRATERASTERIZATIONSAMPLES
The struct member offsets. |
| public static final int | MAXFRAGMENTSIZE
The struct member offsets. |
| public static final int | MAXFRAGMENTSIZEASPECTRATIO
The struct member offsets. |
| public static final int | MINFRAGMENTSHADINGRATEATTACHMENTTEXELSIZE
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | PRIMITIVEFRAGMENTSHADINGRATEWITHMULTIPLEVIEWPORTS
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | STYPE
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkPhysicalDeviceFragmentShadingRatePropertiesKHR(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR | |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| 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. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR | create()
Returns a new |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR | create(long address)
Returns a new |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR. | create(int
the buffer capacity capacity)Returns a new |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR | |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR. | |
| public boolean | fragmentShadingRateNonTrivialCombinerOps()
specifies whether |
| public boolean | fragmentShadingRateStrictMultiplyCombiner()
specifies whether |
| 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 |
| public boolean | fragmentShadingRateWithShaderDepthStencilWrites()
specifies whether the implementation supports writing |
| public boolean | fragmentShadingRateWithShaderSampleMask()
specifies whether the implementation supports reading or writing |
| public boolean | layeredShadingRateAttachments()
specifies whether a shading rate attachment image view can be created with multiple layers. |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR | |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkPhysicalDeviceFragmentShadingRatePropertiesKHR. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| 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 |
| public VkExtent2D | |
| public int | |
| 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 | nfragmentShadingRateNonTrivialCombinerOps(long struct)
Unsafe version of |
| public static int | nfragmentShadingRateStrictMultiplyCombiner(long struct)
Unsafe version of |
| public static int | nfragmentShadingRateWithConservativeRasterization(long struct)
Unsafe version of |
| public static int | nfragmentShadingRateWithCustomSampleLocations(long struct)
Unsafe version of |
| public static int | nfragmentShadingRateWithFragmentShaderInterlock(long struct)
Unsafe version of |
| public static int | |
| public static int | nfragmentShadingRateWithShaderDepthStencilWrites(long struct)
Unsafe version of |
| public static int | nfragmentShadingRateWithShaderSampleMask(long struct)
Unsafe version of |
| public static int | |
| public static VkExtent2D | nmaxFragmentShadingRateAttachmentTexelSize(long struct)
Unsafe version of |
| public static int | nmaxFragmentShadingRateAttachmentTexelSizeAspectRatio(long struct)
Unsafe version of |
| public static int | nmaxFragmentShadingRateCoverageSamples(long struct)
Unsafe version of |
| public static int | nmaxFragmentShadingRateRasterizationSamples(long struct)
Unsafe version of |
| public static VkExtent2D | |
| public static int | |
| public static VkExtent2D | nminFragmentShadingRateAttachmentTexelSize(long struct)
Unsafe version of |
| public static long | |
| public static void | |
| public static int | nprimitiveFragmentShadingRateWithMultipleViewports(long struct)
Unsafe version of |
| public static int | |
| public static void | |
| public long | |
| public VkPhysicalDeviceFragmentShadingRatePropertiesKHR | |
| public boolean | primitiveFragmentShadingRateWithMultipleViewports()
specifies whether the primitive fragment shading rate can be used when multiple viewports are used. |
| public VkPhysicalDeviceFragmentShadingRatePropertiesKHR | |
| public VkPhysicalDeviceFragmentShadingRatePropertiesKHR | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public int | |
| public int | |
| public VkPhysicalDeviceFragmentShadingRatePropertiesKHR | |
| public VkPhysicalDeviceFragmentShadingRatePropertiesKHR | sType$Default()
Sets the |