mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-01-26 22:29:10 +00:00
348990517c
* Bump API patch number and header version number to 29 for this update. Github Issues: * Remove redundant constraint on slink:VkCommandBufferInheritanceInfo::pname:queryFlags (public issue 224). * Fix typo and remove link in Note in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section (public issue 359). * Fix erroneous validation statement for the pname:layout member of slink:VkComputePipelineCreateInfo (public issue 362). Internal Issues: * Restore long figure captions using asciidoc sidebar blocks, due to restrictions of asciidoc syntax (internal issue 101). * Replace most latexmath equations with comparable markup in straight asciidoc, which significantly improves time required to fully load and process the HTML forms of the Specification. There are known minor font and alignment inconsistencies with MathJax and PDF rendering of latexmath equations. Please do not file github issues about these. We are aware of the inconsistencies and will make refinements over time, while the performance improvements are compelling in at least some major browsers (internal issue 313). * Move handcoded validity statements from +vk.xml+ into the Specification body, easing work in the single-branch model. Specify the distinction between these explicit statements, and the implicit validity statements inferred from vk.xml. Validity statements now appear in two blocks for each command and structure - handcoded "Valid Usage" and the implicit "Valid Usage (Implicit)" (internal issue 392). * Add the +returnedonly="false"+ attribute to WSI output structures, removing incorrectly generated implicit validity statements for slink:VkDisplayPropertiesKHR, slink:VkDisplayPlanePropertiesKHR, slink:VkDisplayModePropertiesKHR, slink:VkDisplayPlaneCapabilitiesKHR, slink:VkSurfaceCapabilitiesKHR, and slink:VkSurfaceFormatKHR structures (internal issue 486). * Update slink:VkImageLayout to require the ename:VK_IMAGE_USAGE_SAMPLED_BIT be set for sampled depth/stencil images (internal issue 487). * Use an explicit format specifier string for the date command invocation in the +Makefile+ instead of the shorthand -R option, which doesn't work on BSD and MaxOS X date commands (internal issue 500). Other Issues: * Use the terms ``allocation scope'' and ``extension scope'' instead of just ``scope'', and add them to the glossary.
119 lines
5.6 KiB
Plaintext
119 lines
5.6 KiB
Plaintext
// Copyright (c) 2015-2016 The Khronos Group Inc.
|
|
// Copyright notice at https://www.khronos.org/registry/speccopyright.html
|
|
|
|
[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
|
|
|====
|