The goal of this extension is to enable this efficiency gain on existing ASTC texture data. This is achieved by giving the application the ability to select the intermediate decoding precision.
Three decoding options are provided:
FORMAT_R16G16B16A16_SFLOAT precision: This is the default, and matches the required behavior in the core API.FORMAT_R8G8B8A8_UNORM precision: This is provided as an option in LDR mode.FORMAT_E5B9G9R9_UFLOAT_PACK32 precision: This is provided as an option in both LDR and HDR mode. In this mode, negative values cannot be represented and are clamped to zero. The alpha component is ignored, and the results are as if alpha was 1.0. This decode mode is optional and support can be queried via the physical device properties.Create an image view that decodes to FORMAT_R8G8B8A8_UNORM precision:
VkImageViewASTCDecodeModeEXT decodeMode =
{
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
.pNext = NULL,
.decodeMode = VK_FORMAT_R8G8B8A8_UNORM
};
VkImageViewCreateInfo createInfo =
{
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
.pNext = &decodeMode,
// flags, image, viewType set to application-desired values
.format = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
// components, subresourceRange set to application-desired values
};
VkImageView imageView;
VkResult result = vkCreateImageView(
device,
&createInfo,
NULL,
&imageView);
VK_EXT_astc_decode_modeVK_KHR_get_physical_device_properties2 or Version 1.1| Modifier and Type | Field and Description |
|---|---|
| public static final String | VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME
The extension name. |
| public static final int | VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION
The extension specification version. |
| public static final int | VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
Extends |
| public static final int | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
Extends |
| Access | Constructor and Description |
|---|---|
| private |
| VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME | back to summary |
|---|---|
| public static final String VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME The extension name. | |
| VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION | back to summary |
|---|---|
| public static final int VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION The extension specification version. | |
| VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT Extends Enum values: | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT Extends Enum values: | |
| EXTAstcDecodeMode | back to summary |
|---|---|
| private EXTAstcDecodeMode() | |