Package org.lwjgl.vulkan
Class AMDShaderFragmentMask
- java.lang.Object
-
- org.lwjgl.vulkan.AMDShaderFragmentMask
-
public final class AMDShaderFragmentMask extends java.lang.Object
This extension provides efficient read access to the fragment mask in compressed multisampled color surfaces. The fragment mask is a lookup table that associates color samples with color fragment values.From a shader, the fragment mask can be fetched with a call to
fragmentMaskFetchAMD
, which returns a singleuint
where each subsequent four bits specify the color fragment index corresponding to the color sample, starting from the least significant bit. For example, when eight color samples are used, the color fragment index for color sample 0 will be in bits 0-3 of the fragment mask, for color sample 7 the index will be in bits 28-31.The color fragment for a particular color sample may then be fetched with the corresponding fragment mask value using the
fragmentFetchAMD
shader function.Examples
This example shows a shader that queries the fragment mask from a multisampled compressed surface and uses it to query fragment values.
#version 450 core #extension GL_AMD_shader_fragment_mask: enable layout(binding = 0) uniform sampler2DMS s2DMS; layout(binding = 1) uniform isampler2DMSArray is2DMSArray; layout(binding = 2, input_attachment_index = 0) uniform usubpassInputMS usubpassMS; layout(location = 0) out vec4 fragColor; void main() { vec4 fragOne = vec4(0.0); uint fragMask = fragmentMaskFetchAMD(s2DMS, ivec2(2, 3)); uint fragIndex = (fragMask & 0xF0) >> 4; fragOne += fragmentFetchAMD(s2DMS, ivec2(2, 3), 1); fragMask = fragmentMaskFetchAMD(is2DMSArray, ivec3(2, 3, 1)); fragIndex = (fragMask & 0xF0) >> 4; fragOne += fragmentFetchAMD(is2DMSArray, ivec3(2, 3, 1), fragIndex); fragMask = fragmentMaskFetchAMD(usubpassMS); fragIndex = (fragMask & 0xF0) >> 4; fragOne += fragmentFetchAMD(usubpassMS, fragIndex); fragColor = fragOne; }
- Name String
VK_AMD_shader_fragment_mask
- Extension Type
- Device extension
- Registered Extension Number
- 138
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Contact
- Aaron Hagan AaronHaganAMD
- Last Modified Date
- 2017-08-16
- IP Status
- No known IP claims.
- Dependencies
- Requires the
SPV_AMD_shader_fragment_mask
SPIR-V extension.
- Requires the
- Contributors
- Aaron Hagan, AMD
- Daniel Rakos, AMD
- Timothy Lottes, AMD
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME
The extension name.static int
VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION
The extension specification version.
-
-
-
Field Detail
-
VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION
public static final int VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION
The extension specification version.- See Also:
- Constant Field Values
-
VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME
public static final java.lang.String VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME
The extension name.- See Also:
- Constant Field Values
-
-