mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-01-12 06:54:14 +00:00
b9e9296cd8
* Bump API patch number and header version number to 53 for this update. Github Issues: Internal Issues: * Clarify mappings of coordinates for mutable, compatible image views in slink:VkImageViewCreateInfo (internal issue 815). * Make ename:VK_BIND_SFR_BIT require a logical device with multiple physical devices, so that standard sparse image block dimensions are only required on systems that support multi-GPU (internal issue 835). * Convert all files from use of // refBegin .. // refEnd comments to delimit ref pages, to use of open blocks, and update style guide accordingly (internal issue 839). * Add valid usage for slink:VkWriteDescriptorSet when performing updates to a ename:VK_STORAGE_IMAGE descriptor with layout ename:VK_IMAGE_LAYOUT_GENERAL. * Add a hack to the validity generator script to support an odd interaction between flink:vkCmdFillBuffer and an extension (internal issue 853). * Remove redundant text describing slink:VkBufferCreateInfo::pname:usage, which was already covered by implicit valid usage (internal issue 854). * Update implicit validity generator script to properly handle the pname:sType and pname:pNext members of "returnedonly" structures (internal issue 874). * Note that slink:VkApplicationInfo::pname:pApplicationName & slink:VkApplicationInfo::pname:pEngineName are optional, and add missing implicit valid usage statements for flink:vkDestroyInstance. * Added missing valid usage for flink:vkCmdWriteTimestamp to require a timestamp query pool. * Simplify and/or split "`non-atomic`" valid usage statements. New Extensions: * `VK_AMD_gpu_shader_int16` * `VK_EXT_blend_operation_advanced` * `VK_EXT_sampler_filter_minmax` * `VK_NV_framebuffer_mixed_samples` ----------------------------------------------------- Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release combines both change sets. ----------------------------------------------------- Change log for June 13, 2017 Vulkan 1.0.52 spec update: * Bump API patch number and header version number to 52 for this update. Github Issues: Internal Issues: * Clarify behavior when non-coherent memory has <<memory-device-unmap-does-not-flush, not been flushed before being unmapped>> (internal issue 819). * Fix description of code:WorkgroupSize builtin to note it decorates an object, not a variable (internal issue 836). * Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style equations are rendered properly (internal issue 845). * Add language to the "`Extension Handles, Objects, Enums, and Typedefs`" section of the Procedures and Conventions document stating that any new handle type requires a corresponding entry in the elink:VkObjectType enumerated type (internal issue 856). * Update style guide to use slink macro for Vulkan handle type names, and define narrow conditions under which to use the *name and *text macros instead of *link (internal issue 886). * Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>> extension on VK_KHX_device_group_creation to +vk.xml+ and the extension appendix. * Change the copyright on Vulkan specification asciidoc *source* files to CC-BY 4.0, and update the proprietary Khronos copyright applied to the generated *output* formats (internal issue 327). This enables broader re-use and modification of the Vulkan specification sources, while not affecting the Reciprocal IP License between Vulkan Adopters and Working Group Members. New Extensions: * `VK_NV_fill_rectangle` * `VK_NV_fragment_coverage_to_color`
120 lines
5.7 KiB
Plaintext
120 lines
5.7 KiB
Plaintext
// Copyright (c) 2015-2017 Khronos Group. This work is licensed under a
|
|
// Creative Commons Attribution 4.0 International License; see
|
|
// http://creativecommons.org/licenses/by/4.0/
|
|
|
|
[appendix]
|
|
= Compressed Image Formats
|
|
|
|
The compressed texture formats used by Vulkan are described in the
|
|
specifically identified sections of the <<data-format,Khronos Data Format
|
|
Specification>>, version 1.1.
|
|
|
|
Unless otherwise described, the quantities encoded in these compressed
|
|
formats are treated as normalized, unsigned values.
|
|
|
|
Those formats listed as sRGB-encoded have in-memory representations of
|
|
[eq]#R#, [eq]#G# and [eq]#B# components which are nonlinearly-encoded as
|
|
[eq]#R'#, [eq]#G'#, and [eq]#B'#; any alpha component is unchanged.
|
|
As part of filtering, the nonlinear [eq]#R'#, [eq]#G'#, and [eq]#B'# values
|
|
are converted to linear [eq]#R#, [eq]#G#, and [eq]#B# components; any alpha
|
|
component is unchanged.
|
|
The conversion between linear and nonlinear encoding is performed as
|
|
described in the "`KHR_DF_TRANSFER_SRGB`" section of the Khronos Data Format
|
|
Specification.
|
|
|
|
<<<
|
|
|
|
[[appendix-compressedtex-bc]]
|
|
== Block-Compressed Image Formats
|
|
|
|
.Mapping of Vulkan BC formats to descriptions
|
|
[width="90%",options="header",cols="5,4"]
|
|
|====
|
|
| VkFormat | <<data-format,Khronos Data Format Specification>> description
|
|
2+^| Formats described in the "`S3TC Compressed Texture Image Formats`" chapter
|
|
| ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK |BC1 with no alpha
|
|
| ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK |BC1 with no alpha, sRGB-encoded
|
|
| ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK|BC1 with alpha
|
|
| ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK |BC1 with alpha, sRGB-encoded
|
|
| ename:VK_FORMAT_BC2_UNORM_BLOCK |BC2
|
|
| ename:VK_FORMAT_BC2_SRGB_BLOCK |BC2, sRGB-encoded
|
|
| ename:VK_FORMAT_BC3_UNORM_BLOCK |BC3
|
|
| ename:VK_FORMAT_BC3_SRGB_BLOCK |BC3, sRGB-encoded
|
|
2+^| Formats described in the "`RGTC Compressed Texture Image Formats`" chapter
|
|
| ename:VK_FORMAT_BC4_UNORM_BLOCK |BC4 unsigned
|
|
| ename:VK_FORMAT_BC4_SNORM_BLOCK |BC4 signed
|
|
| ename:VK_FORMAT_BC5_UNORM_BLOCK |BC5 unsigned
|
|
| ename:VK_FORMAT_BC5_SNORM_BLOCK |BC5 signed
|
|
2+^| Formats described in the "`BPTC Compressed Texture Image Formats`" chapter
|
|
| ename:VK_FORMAT_BC6H_UFLOAT_BLOCK |BC6H (unsigned version)
|
|
| ename:VK_FORMAT_BC6H_SFLOAT_BLOCK |BC6H (signed version)
|
|
| ename:VK_FORMAT_BC7_UNORM_BLOCK |BC7
|
|
| ename:VK_FORMAT_BC7_SRGB_BLOCK |BC7, sRGB-encoded
|
|
|====
|
|
|
|
<<<
|
|
|
|
[[appendix-compressedtex-etc2]]
|
|
== ETC Compressed Image Formats
|
|
|
|
The following formats are described in the "`ETC2 Compressed Texture Image
|
|
Formats`" chapter of the <<data-format,Khronos Data Format Specification>>.
|
|
|
|
.Mapping of Vulkan ETC formats to descriptions
|
|
[options="header",cols="1,1"]
|
|
|====
|
|
| VkFormat | <<data-format,Khronos Data Format Specification>> description
|
|
| ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK |RGB ETC2
|
|
| ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK |RGB ETC2 with sRGB encoding
|
|
| ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK |RGB ETC2 with punch-through alpha
|
|
| ename:VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK |RGB ETC2 with punch-through alpha and sRGB
|
|
| ename:VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK |RGBA ETC2
|
|
| ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK |RGBA ETC2 with sRGB encoding
|
|
| ename:VK_FORMAT_EAC_R11_UNORM_BLOCK |Unsigned R11 EAC
|
|
| ename:VK_FORMAT_EAC_R11_SNORM_BLOCK |Signed R11 EAC
|
|
| ename:VK_FORMAT_EAC_R11G11_UNORM_BLOCK |Unsigned RG11 EAC
|
|
| ename:VK_FORMAT_EAC_R11G11_SNORM_BLOCK |Signed RG11 EAC
|
|
|====
|
|
|
|
<<<
|
|
|
|
[[appendix-compressedtex-astc]]
|
|
== ASTC Compressed Image Formats
|
|
|
|
ASTC formats are described in the "`ASTC Compressed Texture Image Formats`"
|
|
chapter of the <<data-format,Khronos Data Format Specification>>.
|
|
|
|
.Mapping of Vulkan ASTC formats to descriptions
|
|
[width="75%",options="header",cols="63%,15%,22%"]
|
|
|====
|
|
| VkFormat ^| Compressed texel block dimensions ^| sRGB-encoded
|
|
| ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK ^|[eq]#4 {times} 4# ^|No
|
|
| ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK ^|[eq]#4 {times} 4# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK ^|[eq]#5 {times} 4# ^|No
|
|
| ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK ^|[eq]#5 {times} 4# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK ^|[eq]#5 {times} 5# ^|No
|
|
| ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK ^|[eq]#5 {times} 5# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK ^|[eq]#6 {times} 5# ^|No
|
|
| ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK ^|[eq]#6 {times} 5# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK ^|[eq]#6 {times} 6# ^|No
|
|
| ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK ^|[eq]#6 {times} 6# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK ^|[eq]#8 {times} 5# ^|No
|
|
| ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK ^|[eq]#8 {times} 5# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK ^|[eq]#8 {times} 6# ^|No
|
|
| ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK ^|[eq]#8 {times} 6# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK ^|[eq]#8 {times} 8# ^|No
|
|
| ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK ^|[eq]#8 {times} 8# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK ^|[eq]#10 {times} 5# ^|No
|
|
| ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK ^|[eq]#10 {times} 5# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK ^|[eq]#10 {times} 6# ^|No
|
|
| ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK ^|[eq]#10 {times} 6# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK ^|[eq]#10 {times} 8# ^|No
|
|
| ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK ^|[eq]#10 {times} 8# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK ^|[eq]#10 {times} 10# ^|No
|
|
| ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK ^|[eq]#10 {times} 10# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK ^|[eq]#12 {times} 10# ^|No
|
|
| ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK ^|[eq]#12 {times} 10# ^|Yes
|
|
| ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK ^|[eq]#12 {times} 12# ^|No
|
|
| ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK ^|[eq]#12 {times} 12# ^|Yes
|
|
|====
|