Change log for July 28, 2019 Vulkan 1.1.117 spec update:

* Update release number to 117.

Github Issues:

  * Add ename:VK_STENCIL_FACE_FRONT_AND_BACK for naming consistency, and
    alias the old ename:VK_STENCIL_FRONT_AND_BACK for backwards
    compatibility (public issue 991).
  * Fix minor issues with valid usage statements for
    flink:vkCreateFramebuffer, slink:VkFramebufferCreateInfo, and
    slink:VkRenderPassBeginInfo when the `<<VK_KHR_imageless_framebuffer>>`
    extension is enabled (public issue 998).
  * Clarify the subpass dependency requirement in the
    <<renderpass-layout-transitions>> section to eliminate the need for a
    subpass dependency for either the same or different layouts as long as
    they're both read-only (relates to
    https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/948).

Internal Issues:

  * Document that <<extendingvulkan-compatibility-promotion, backwards
    compatibility aliases are not promoted>> as part of promoting an
    extension (internal issue 1677).
  * Update VK_ANDROID_native_buffer extension to spec version 8 (internal
    issue 1753).
  * Add missing section to the <<VK_KHR_shader_controls_v4_incompatibility,
    VK_KHR_shader_float_controls>> extension appendix describing
    the reason for the breaking API change in version 4 of the extension,
    and correct the version to 4 in `vk.xml` (internal merge request
    3275).
  * Add valid usage statements to slink:VkAccelerationStructureInfoNV
    requiring the ename:VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag for
    buffers used in acceleration structure building.

New Extensions:

  * `<<VK_EXT_line_rasterization>>`
  * `<<VK_EXT_texture_compression_astc_hdr>>`
  * `<<VK_EXT_index_type_uint8>>`
This commit is contained in:
Jon Leech 2019-07-28 21:22:36 -07:00
parent 355950cc0d
commit 0e3ceb7574
21 changed files with 1666 additions and 85 deletions

View File

@ -8,6 +8,49 @@ public pull requests that have been accepted.
----------------------------------------------------- -----------------------------------------------------
Change log for July 28, 2019 Vulkan 1.1.117 spec update:
* Update release number to 117.
Github Issues:
* Add ename:VK_STENCIL_FACE_FRONT_AND_BACK for naming consistency, and
alias the old ename:VK_STENCIL_FRONT_AND_BACK for backwards
compatibility (public issue 991).
* Fix minor issues with valid usage statements for
flink:vkCreateFramebuffer, slink:VkFramebufferCreateInfo, and
slink:VkRenderPassBeginInfo when the `<<VK_KHR_imageless_framebuffer>>`
extension is enabled (public issue 998).
* Clarify the subpass dependency requirement in the
<<renderpass-layout-transitions>> section to eliminate the need for a
subpass dependency for either the same or different layouts as long as
they're both read-only (relates to
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/948).
Internal Issues:
* Document that <<extendingvulkan-compatibility-promotion, backwards
compatibility aliases are not promoted>> as part of promoting an
extension (internal issue 1677).
* Update VK_ANDROID_native_buffer extension to spec version 8 (internal
issue 1753).
* Add missing section to the <<VK_KHR_shader_controls_v4_incompatibility,
VK_KHR_shader_float_controls>> extension appendix describing
the reason for the breaking API change in version 4 of the extension,
and correct the version to 4 in `vk.xml` (internal merge request
3275).
* Add valid usage statements to slink:VkAccelerationStructureInfoNV
requiring the ename:VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag for
buffers used in acceleration structure building.
New Extensions:
* `<<VK_EXT_line_rasterization>>`
* `<<VK_EXT_texture_compression_astc_hdr>>`
* `<<VK_EXT_index_type_uint8>>`
-----------------------------------------------------
Change log for July 20, 2019 Vulkan 1.1.116 spec update: Change log for July 20, 2019 Vulkan 1.1.116 spec update:
* Happy 50th Lunar Landing Day! * Happy 50th Lunar Landing Day!

View File

@ -121,7 +121,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output # ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 116 PATCHVERSION = 117
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS))) ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION) SPECREVISION = 1.1.$(PATCHVERSION)
else else

View File

@ -0,0 +1,52 @@
include::meta/VK_EXT_index_type_uint8.txt[]
*Last Modified Date*::
2019-05-02
*IP Status*::
No known IP claims.
*Contributors*::
- Jeff Bolz, NVIDIA
This extension allows uint8_t indices to be used with
flink:vkCmdBindIndexBuffer.
=== New Object Types
None
=== New Enum Constants
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT
* Extending elink:VkIndexType:
** ename:VK_INDEX_TYPE_UINT8_EXT
=== New Enums
None
=== New Structures
* slink:VkPhysicalDeviceIndexTypeUint8FeaturesEXT
=== New Functions
None
=== New Built-In Variables
None
=== New SPIR-V Capabilities
None
=== Issues
None
=== Version History
* Revision 1, 2019-05-02 (Piers Daniell)
- Internal revisions

View File

@ -0,0 +1,55 @@
include::meta/VK_EXT_line_rasterization.txt[]
*Last Modified Date*::
2019-05-09
*IP Status*::
No known IP claims.
*Contributors*::
- Jeff Bolz, NVIDIA
- Allen Jensen, NVIDIA
- Jason Ekstrand, Intel
This extension adds some line rasterization features that are commonly used
in CAD applications and supported in other APIs like OpenGL.
Bresenham-style line rasterization is supported, smooth rectangular lines
(coverage to alpha) are supported, and stippled lines are supported for all
three line rasterization modes.
=== New Enum Constants
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT
** ename:VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT
* Extending elink:VkDynamicState:
** ename:VK_DYNAMIC_STATE_LINE_STIPPLE_EXT
=== New Enums
* elink:VkLineRasterizationModeEXT
=== New Structures
* slink:VkPhysicalDeviceLineRasterizationFeaturesEXT
* slink:VkPipelineRasterizationLineStateCreateInfoEXT
=== New Functions
* flink:vkCmdSetLineStippleEXT
=== Issues
(1) Do we need to support Bresenham-style and smooth lines with more than
one rasterization sample? i.e. the equivalent of
glDisable(GL_MULTISAMPLE) in OpenGL when the framebuffer has more than
one sample?
RESOLVED: Yes.
For simplicity, Bresenham line rasterization carries forward a few
restrictions from OpenGL, such as not supporting per-sample shading, alpha
to coverage, or alpha to one.
=== Version History
* Revision 1, 2019-05-09 (Jeff Bolz)
- Initial draft

View File

@ -0,0 +1,87 @@
include::meta/VK_EXT_texture_compression_astc_hdr.txt[]
*Last Modified Date*::
2019-05-28
*IP Status*::
No known issues.
*Contributors*::
- Jan-Harald Fredriksen, Arm
This extension adds support for textures compressed using the Adaptive
Scalable Texture Compression (ASTC) High Dynamic Range (HDR) profile.
When this extension is enabled, the HDR profile is supported for all ASTC
formats listed in <<appendix-compressedtex-astc, ASTC Compressed Image
Formats>>.
=== New Object Types
None.
=== New Enum Constants
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT
* Extending elink:VkFormat:
** ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT
=== New Enums
None.
=== New Structures
* slink:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
=== New Functions
None.
=== Issues
1) Should we add a feature or limit for this functionality?
Yes.
It is consistent with the ASTC LDR support to add a feature like
textureCompressionASTC_HDR.
The feature is strictly speaking redundant as long as this is just an
extension; it would be be sufficient to just enable the extension.
But adding the feature is more forward-looking if wanted to make this an
optional core feature in the future.
2) Should we introduce new format enums for HDR?
Yes.
Vulkan 1.0 describes the ASTC format enums as UNORM, e.g.
VK_FORMAT_ASTC_4x4_UNORM_BLOCK, so it's confusing to make these contain HDR
data.
Note that the OpenGL (ES) extensions did not make this distinction because a
single ASTC HDR texture may contain both unorm and float blocks.
Implementations may: not be able to distinguish between LDR and HDR ASTC
textures internally and just treat them as the same format, i.e. if this
extension is supported then sampling from an
ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK image format may: return HDR results.
Applications can: get predictable results by using the appropriate image
format.
=== Version History
* Revision 1, 2019-05-28 (Jan-Harald Fredriksen)
- Initial version

View File

@ -92,8 +92,41 @@ instructions.
*RESOLVED*: These instructions must always accurately detect inf/nan if it *RESOLVED*: These instructions must always accurately detect inf/nan if it
is passed to them. is passed to them.
[[VK_KHR_shader_controls_v4_incompatibility]]
=== Version 4 API incompatiblity
The original versions of VK_KHR_shader_controls shipped with booleans named
"separateDenormSettings" and "separateRoundingModeSettings", which at first
glance could've indicated "they can all independently set, or not".
However the spec language as written indicated that the 32-bit value could
always be set independently, and only the 16- and 64-bit controls needed to
be the same if these values were VK_FALSE.
As a result of this slight disparity, and lack of test coverage for this
facet of the extension, we ended up with two different behaviors in the
wild, where some implementations worked as written, and others worked based
on the naming.
As these are hard limits in hardware with reasons for exposure as written,
it was not possible to standardise on a single way to make this work within
the existing API.
No known users of this part of the extension exist in the wild, and as such
the Vulkan WG took the unusual step of retroactively changing the once
boolean value into a tri-state enum, breaking source compatibility.
This was however done in such a way as to retain ABI compatibility, in case
any code using this did exist; with the numerical values 0 and 1 retaining
their original specified meaning, and a new value signifying the additional
"all need to be set together" state.
If any applications exist today, compiled binaries will continue to work as
written in most cases, but will need changes before the code can be
recompiled.
=== Version History === Version History
* Revision 4, 2019-06-18 (Tobias Hector)
- Modified settings restrictions, see
<<VK_KHR_shader_controls_v4_incompatibility>>
* Revision 3, 2018-09-11 (Alexander Galazin) * Revision 3, 2018-09-11 (Alexander Galazin)
- Minor restructuring - Minor restructuring
* Revision 2, 2018-04-17 (Alexander Galazin) * Revision 2, 2018-04-17 (Alexander Galazin)

View File

@ -85,37 +85,53 @@ ASTC formats are described in the "`ASTC Compressed Texture Image Formats`"
chapter of the <<data-format,Khronos Data Format Specification>>. chapter of the <<data-format,Khronos Data Format Specification>>.
.Mapping of Vulkan ASTC formats to descriptions .Mapping of Vulkan ASTC formats to descriptions
[width="75%",options="header",cols="63%,15%,22%"] [width="90%",options="header",cols="50%,15%,20%,15%"]
|==== |====
| elink:VkFormat ^| Compressed texel block dimensions ^| sRGB-encoded | elink:VkFormat ^| Compressed texel block dimensions ^| sRGB-encoded ^| Profile
| ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK ^|[eq]#4 {times} 4# ^|No | ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK ^|[eq]#4 {times} 4# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK ^|[eq]#4 {times} 4# ^|Yes | ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK ^|[eq]#4 {times} 4# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK ^|[eq]#5 {times} 4# ^|No | ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK ^|[eq]#5 {times} 4# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK ^|[eq]#5 {times} 4# ^|Yes | ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK ^|[eq]#5 {times} 4# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK ^|[eq]#5 {times} 5# ^|No | ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK ^|[eq]#5 {times} 5# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK ^|[eq]#5 {times} 5# ^|Yes | ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK ^|[eq]#5 {times} 5# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK ^|[eq]#6 {times} 5# ^|No | ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK ^|[eq]#6 {times} 5# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK ^|[eq]#6 {times} 5# ^|Yes | ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK ^|[eq]#6 {times} 5# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK ^|[eq]#6 {times} 6# ^|No | ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK ^|[eq]#6 {times} 6# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK ^|[eq]#6 {times} 6# ^|Yes | ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK ^|[eq]#6 {times} 6# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK ^|[eq]#8 {times} 5# ^|No | ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK ^|[eq]#8 {times} 5# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK ^|[eq]#8 {times} 5# ^|Yes | ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK ^|[eq]#8 {times} 5# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK ^|[eq]#8 {times} 6# ^|No | ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK ^|[eq]#8 {times} 6# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK ^|[eq]#8 {times} 6# ^|Yes | ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK ^|[eq]#8 {times} 6# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK ^|[eq]#8 {times} 8# ^|No | ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK ^|[eq]#8 {times} 8# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK ^|[eq]#8 {times} 8# ^|Yes | ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK ^|[eq]#8 {times} 8# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK ^|[eq]#10 {times} 5# ^|No | ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK ^|[eq]#10 {times} 5# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK ^|[eq]#10 {times} 5# ^|Yes | ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK ^|[eq]#10 {times} 5# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK ^|[eq]#10 {times} 6# ^|No | ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK ^|[eq]#10 {times} 6# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK ^|[eq]#10 {times} 6# ^|Yes | ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK ^|[eq]#10 {times} 6# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK ^|[eq]#10 {times} 8# ^|No | ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK ^|[eq]#10 {times} 8# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK ^|[eq]#10 {times} 8# ^|Yes | ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK ^|[eq]#10 {times} 8# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK ^|[eq]#10 {times} 10# ^|No | ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK ^|[eq]#10 {times} 10# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK ^|[eq]#10 {times} 10# ^|Yes | ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK ^|[eq]#10 {times} 10# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK ^|[eq]#12 {times} 10# ^|No | ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK ^|[eq]#12 {times} 10# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK ^|[eq]#12 {times} 10# ^|Yes | ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK ^|[eq]#12 {times} 10# ^|Yes ^| LDR
| ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK ^|[eq]#12 {times} 12# ^|No | ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK ^|[eq]#12 {times} 12# ^|No ^| LDR
| ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK ^|[eq]#12 {times} 12# ^|Yes | ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK ^|[eq]#12 {times} 12# ^|Yes ^| LDR
ifdef::VK_EXT_texture_compression_astc_hdr[]
| ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT ^|[eq]#4 {times} 4# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT ^|[eq]#5 {times} 4# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT ^|[eq]#5 {times} 5# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT ^|[eq]#6 {times} 5# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT ^|[eq]#6 {times} 6# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT ^|[eq]#8 {times} 5# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT ^|[eq]#8 {times} 6# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT ^|[eq]#8 {times} 8# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT ^|[eq]#10 {times} 5# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT ^|[eq]#10 {times} 6# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT ^|[eq]#10 {times} 8# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT ^|[eq]#10 {times} 10# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT ^|[eq]#12 {times} 10# ^|No ^| HDR
| ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT ^|[eq]#12 {times} 12# ^|No ^| HDR
endif::VK_EXT_texture_compression_astc_hdr[]
|==== |====
ifdef::VK_EXT_astc_decode_mode[] ifdef::VK_EXT_astc_decode_mode[]

View File

@ -319,6 +319,9 @@ include::{generated}/api/structs/VkObjectTableIndexBufferEntryNVX.txt[]
**** ****
* [[VUID-VkObjectTableIndexBufferEntryNVX-type-01371]] * [[VUID-VkObjectTableIndexBufferEntryNVX-type-01371]]
pname:type must: be ename:VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX pname:type must: be ename:VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX
* [[VUID-VkObjectTableIndexBufferEntryNVX-indexType-02783]]
pname:indexType must: be ename:VK_INDEX_TYPE_UINT16, or
ename:VK_INDEX_TYPE_UINT32
**** ****
include::{generated}/validity/structs/VkObjectTableIndexBufferEntryNVX.txt[] include::{generated}/validity/structs/VkObjectTableIndexBufferEntryNVX.txt[]

View File

@ -131,6 +131,13 @@ flink:vkCmdBuildAccelerationStructureNV.
ename:VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV bit set, ename:VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV bit set,
then it must: not have the then it must: not have the
ename:VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV bit set ename:VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV bit set
* [[VUID-VkAccelerationStructureInfoNV-scratch-02781]]
pname:scratch must: have been created with
ename:VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
* [[VUID-VkAccelerationStructureInfoNV-instanceData-02782]]
If pname:instanceData is not dlink:VK_NULL_HANDLE, pname:instanceData
must: have been created with ename:VK_BUFFER_USAGE_RAY_TRACING_BIT_NV
usage flag
**** ****
include::{generated}/validity/structs/VkAccelerationStructureInfoNV.txt[] include::{generated}/validity/structs/VkAccelerationStructureInfoNV.txt[]

View File

@ -46,8 +46,11 @@ include::{generated}/api/structs/VkPipelineInputAssemblyStateCreateInfo.txt[]
This enable only applies to indexed draws (flink:vkCmdDrawIndexed and This enable only applies to indexed draws (flink:vkCmdDrawIndexed and
flink:vkCmdDrawIndexedIndirect), and the special index value is either flink:vkCmdDrawIndexedIndirect), and the special index value is either
0xFFFFFFFF when the pname:indexType parameter of 0xFFFFFFFF when the pname:indexType parameter of
fname:vkCmdBindIndexBuffer is equal to ename:VK_INDEX_TYPE_UINT32, or fname:vkCmdBindIndexBuffer is equal to ename:VK_INDEX_TYPE_UINT32,
0xFFFF when pname:indexType is equal to ename:VK_INDEX_TYPE_UINT16. ifdef::VK_EXT_index_type_uint8[]
0xFF when pname:indexType is equal to ename:VK_INDEX_TYPE_UINT8_EXT,
endif::VK_EXT_index_type_uint8[]
or 0xFFFF when pname:indexType is equal to ename:VK_INDEX_TYPE_UINT16.
Primitive restart is not allowed for "`list`" topologies. Primitive restart is not allowed for "`list`" topologies.
Restarting the assembly of primitives discards the most recent index values Restarting the assembly of primitives discards the most recent index values
@ -548,6 +551,11 @@ ifdef::VK_NV_ray_tracing[]
* [[VUID-vkCmdBindIndexBuffer-indexType-02507]] * [[VUID-vkCmdBindIndexBuffer-indexType-02507]]
pname:indexType must: not be ename:VK_INDEX_TYPE_NONE_NV. pname:indexType must: not be ename:VK_INDEX_TYPE_NONE_NV.
endif::VK_NV_ray_tracing[] endif::VK_NV_ray_tracing[]
ifdef::VK_EXT_index_type_uint8[]
* [[VUID-vkCmdBindIndexBuffer-indexType-02765]]
If pname:indexType is ename:VK_INDEX_TYPE_UINT8_EXT, the
<<features-indexTypeUint8,indexTypeUint8>> feature must: be enabled
endif::VK_EXT_index_type_uint8[]
**** ****
include::{generated}/validity/protos/vkCmdBindIndexBuffer.txt[] include::{generated}/validity/protos/vkCmdBindIndexBuffer.txt[]
@ -569,6 +577,10 @@ include::{generated}/api/enums/VkIndexType.txt[]
ifdef::VK_NV_ray_tracing[] ifdef::VK_NV_ray_tracing[]
* ename:VK_INDEX_TYPE_NONE_NV specifies that no indices are provided. * ename:VK_INDEX_TYPE_NONE_NV specifies that no indices are provided.
endif::VK_NV_ray_tracing[] endif::VK_NV_ray_tracing[]
ifdef::VK_EXT_index_type_uint8[]
* ename:VK_INDEX_TYPE_UINT8_EXT specifies that indices are 8-bit unsigned
integer values.
endif::VK_EXT_index_type_uint8[]
-- --
The parameters for each drawing command are specified directly in the The parameters for each drawing command are specified directly in the
@ -643,9 +655,12 @@ byte size of the type specified by pname:indexType.
Subsequent index values are retrieved from consecutive locations in the Subsequent index values are retrieved from consecutive locations in the
index buffer. index buffer.
Indices are first compared to the primitive restart value, then zero Indices are first compared to the primitive restart value, then zero
extended to 32 bits (if the code:indexType is ename:VK_INDEX_TYPE_UINT16) extended to 32 bits (if the code:indexType is
and have pname:vertexOffset added to them, before being supplied as the ifdef::VK_EXT_index_type_uint8[]
code:vertexIndex value. ename:VK_INDEX_TYPE_UINT8_EXT or
endif::VK_EXT_index_type_uint8[]
ename:VK_INDEX_TYPE_UINT16) and have pname:vertexOffset added to them,
before being supplied as the code:vertexIndex value.
The primitives are drawn pname:instanceCount times with code:instanceIndex The primitives are drawn pname:instanceCount times with code:instanceIndex
starting with pname:firstInstance and increasing sequentially for each starting with pname:firstInstance and increasing sequentially for each

View File

@ -687,6 +687,23 @@ can do so retroactively if necessary.
Extensions that are promoted are listed as being promoted in their extension Extensions that are promoted are listed as being promoted in their extension
appendices, with reference to where they were promoted to. appendices, with reference to where they were promoted to.
When an extension is promoted, any backwards compatibility aliases which
exist in the extension will *not* be promoted.
[NOTE]
.Note
====
As a hypothetical example, if the `<<VK_KHR_surface>>` extension were
promoted to part of a future core version, the
ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR token defined by that extension
would be promoted to etext:VK_COLOR_SPACE_SRGB_NONLINEAR.
However, the ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR token aliases
ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR.
The ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR would not be promoted, because it
is a backwards compatibility alias that exists only due to a naming mistake
when the extension was initially published.
====
[[extendingvulkan-compatibility-deprecation]] [[extendingvulkan-compatibility-deprecation]]
==== Deprecation ==== Deprecation

123
chapters/features.txt Normal file → Executable file
View File

@ -2200,6 +2200,32 @@ include::{generated}/validity/structs/VkPhysicalDeviceCoverageReductionModeFeatu
-- --
endif::VK_NV_coverage_reduction_mode[] endif::VK_NV_coverage_reduction_mode[]
ifdef::VK_EXT_index_type_uint8[]
[open,refpage='VkPhysicalDeviceIndexTypeUint8FeaturesEXT',desc='Structure describing whether uint8 index type can be used',type='structs']
--
The sname:VkPhysicalDeviceIndexTypeUint8FeaturesEXT structure is defined as:
include::{generated}/api/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.txt[]
The members of the sname:VkPhysicalDeviceIndexTypeUint8FeaturesEXT structure
describe the following features:
* [[features-indexTypeUint8]] pname:indexTypeUint8 indicates that
ename:VK_INDEX_TYPE_UINT8_EXT can be used with
flink:vkCmdBindIndexBuffer.
If the sname:VkPhysicalDeviceIndexTypeUint8FeaturesEXT structure is included
in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is filled
with values indicating whether the feature is supported.
sname:VkPhysicalDeviceIndexTypeUint8FeaturesEXT can: also be used in the
pname:pNext chain of slink:VkDeviceCreateInfo to enable features.
include::{generated}/validity/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.txt[]
--
endif::VK_EXT_index_type_uint8[]
ifdef::VK_NV_shader_sm_builtins[] ifdef::VK_NV_shader_sm_builtins[]
[open,refpage='VkPhysicalDeviceShaderSMBuiltinsFeaturesNV',desc='Structure describing the shader SM Builtins features that can be supported by an implementation',type='structs'] [open,refpage='VkPhysicalDeviceShaderSMBuiltinsFeaturesNV',desc='Structure describing the shader SM Builtins features that can be supported by an implementation',type='structs']
-- --
@ -2284,6 +2310,103 @@ include::{generated}/validity/structs/VkPhysicalDeviceTexelBufferAlignmentFeatur
endif::VK_EXT_texel_buffer_alignment[] endif::VK_EXT_texel_buffer_alignment[]
ifdef::VK_EXT_texture_compression_astc_hdr[]
[open,refpage='VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT',desc='Structure describing ASTC HDR features that can be supported by an implementation',type='structs']
--
The sname:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT structure is
defined as:
include::{generated}/api/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.txt[]
The members of the
sname:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT structure
describe the following features:
* [[features-features-textureCompressionASTC_HDR]]
pname:textureCompressionASTC_HDR indicates whether all of the ASTC HDR
compressed texture formats are supported.
If this feature is enabled, then the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must:
be supported in pname:optimalTilingFeatures for the following formats:
+
** ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT
** ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT
+
To query for additional properties, or if the feature is not enabled,
flink:vkGetPhysicalDeviceFormatProperties and
flink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
supported properties of individual formats as normal.
If the sname:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT structure
is included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it
is filled with values indicating whether each feature is supported.
sname:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT can: also be used
in the pname:pNext chain of flink:vkCreateDevice to enable features.
include::{generated}/validity/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.txt[]
--
endif::VK_EXT_texture_compression_astc_hdr[]
ifdef::VK_EXT_line_rasterization[]
[open,refpage='VkPhysicalDeviceLineRasterizationFeaturesEXT',desc='Structure describing the line rasterization features that can be supported by an implementation',type='structs']
--
The sname:VkPhysicalDeviceLineRasterizationFeaturesEXT structure is defined
as:
include::{generated}/api/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.txt[]
The members of the sname:VkPhysicalDeviceLineRasterizationFeaturesEXT
structure describe the following features:
* [[features-features-rectangularLines]] pname:rectangularLines indicates
whether the implementation supports <<primsrast-lines,rectangular line
rasterization>>.
* [[features-features-bresenhamLines]] pname:bresenhamLines indicates
whether the implementation supports
<<primsrast-lines-bresenham,Bresenham-style line rasterization>>.
* [[features-features-smoothLines]] pname:smoothLines indicates whether
the implementation supports <<primsrast-lines-smooth,smooth line
rasterization>>.
* [[features-features-stippledRectangularLines]]
pname:stippledRectangularLines indicates whether the implementation
supports <<primsrast-lines-stipple,stippled line rasterization>> with
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT lines, or with
ename:VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT lines if
slink:VkPhysicalDeviceLimits::pname:strictLines is ename:VK_TRUE.
* [[features-features-stippledBresenhamLines]]
pname:stippledBresenhamLines indicates whether the implementation
supports <<primsrast-lines-stipple,stippled line rasterization>> with
ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT lines.
* [[features-features-stippledSmoothLines]] pname:stippledSmoothLines
indicates whether the implementation supports
<<primsrast-lines-stipple,stippled line rasterization>> with
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT lines.
If the sname:VkPhysicalDeviceLineRasterizationFeaturesEXT structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR, it
is filled with values indicating whether the feature is supported.
sname:VkPhysicalDeviceLineRasterizationFeaturesEXT can: also be used in the
pname:pNext chain of slink:VkDeviceCreateInfo to enable the feature.
include::{generated}/validity/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.txt[]
--
endif::VK_EXT_line_rasterization[]
[[features-requirements]] [[features-requirements]]
== Feature Requirements == Feature Requirements

View File

@ -591,6 +591,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
4{times}4 rectangle of unsigned normalized RGBA texel data with sRGB 4{times}4 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 4{times}4 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
5{times}4 rectangle of unsigned normalized RGBA texel data. 5{times}4 rectangle of unsigned normalized RGBA texel data.
@ -598,6 +603,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
5{times}4 rectangle of unsigned normalized RGBA texel data with sRGB 5{times}4 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 5{times}4 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
5{times}5 rectangle of unsigned normalized RGBA texel data. 5{times}5 rectangle of unsigned normalized RGBA texel data.
@ -605,6 +615,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
5{times}5 rectangle of unsigned normalized RGBA texel data with sRGB 5{times}5 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 5{times}5 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
6{times}5 rectangle of unsigned normalized RGBA texel data. 6{times}5 rectangle of unsigned normalized RGBA texel data.
@ -612,6 +627,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
6{times}5 rectangle of unsigned normalized RGBA texel data with sRGB 6{times}5 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 6{times}5 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
6{times}6 rectangle of unsigned normalized RGBA texel data. 6{times}6 rectangle of unsigned normalized RGBA texel data.
@ -619,6 +639,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
6{times}6 rectangle of unsigned normalized RGBA texel data with sRGB 6{times}6 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 6{times}6 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes an compressed format where each 128-bit compressed texel block encodes an
8{times}5 rectangle of unsigned normalized RGBA texel data. 8{times}5 rectangle of unsigned normalized RGBA texel data.
@ -626,6 +651,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes an compressed format where each 128-bit compressed texel block encodes an
8{times}5 rectangle of unsigned normalized RGBA texel data with sRGB 8{times}5 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 8{times}5 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes an compressed format where each 128-bit compressed texel block encodes an
8{times}6 rectangle of unsigned normalized RGBA texel data. 8{times}6 rectangle of unsigned normalized RGBA texel data.
@ -633,6 +663,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes an compressed format where each 128-bit compressed texel block encodes an
8{times}6 rectangle of unsigned normalized RGBA texel data with sRGB 8{times}6 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 8{times}6 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes an compressed format where each 128-bit compressed texel block encodes an
8{times}8 rectangle of unsigned normalized RGBA texel data. 8{times}8 rectangle of unsigned normalized RGBA texel data.
@ -640,6 +675,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes an compressed format where each 128-bit compressed texel block encodes an
8{times}8 rectangle of unsigned normalized RGBA texel data with sRGB 8{times}8 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 8{times}8 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
10{times}5 rectangle of unsigned normalized RGBA texel data. 10{times}5 rectangle of unsigned normalized RGBA texel data.
@ -647,6 +687,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
10{times}5 rectangle of unsigned normalized RGBA texel data with sRGB 10{times}5 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 10{times}5 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
10{times}6 rectangle of unsigned normalized RGBA texel data. 10{times}6 rectangle of unsigned normalized RGBA texel data.
@ -654,6 +699,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
10{times}6 rectangle of unsigned normalized RGBA texel data with sRGB 10{times}6 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 10{times}6 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
10{times}8 rectangle of unsigned normalized RGBA texel data. 10{times}8 rectangle of unsigned normalized RGBA texel data.
@ -661,6 +711,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
10{times}8 rectangle of unsigned normalized RGBA texel data with sRGB 10{times}8 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 10{times}8 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
10{times}10 rectangle of unsigned normalized RGBA texel data. 10{times}10 rectangle of unsigned normalized RGBA texel data.
@ -668,6 +723,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
10{times}10 rectangle of unsigned normalized RGBA texel data with sRGB 10{times}10 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 10{times}10 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
12{times}10 rectangle of unsigned normalized RGBA texel data. 12{times}10 rectangle of unsigned normalized RGBA texel data.
@ -675,6 +735,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
12{times}10 rectangle of unsigned normalized RGBA texel data with sRGB 12{times}10 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 12{times}10 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK specifies a four-component, ASTC * ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK specifies a four-component, ASTC
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
12{times}12 rectangle of unsigned normalized RGBA texel data. 12{times}12 rectangle of unsigned normalized RGBA texel data.
@ -682,6 +747,11 @@ include::{generated}/api/enums/VkFormat.txt[]
compressed format where each 128-bit compressed texel block encodes a compressed format where each 128-bit compressed texel block encodes a
12{times}12 rectangle of unsigned normalized RGBA texel data with sRGB 12{times}12 rectangle of unsigned normalized RGBA texel data with sRGB
nonlinear encoding applied to the RGB components. nonlinear encoding applied to the RGB components.
ifdef::VK_EXT_texture_compression_astc_hdr[]
* ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT specifies a four-component,
ASTC compressed format where each 128-bit compressed texel block encodes
a 12{times}12 rectangle of signed floating-point RGBA texel data.
endif::VK_EXT_texture_compression_astc_hdr[]
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* ename:VK_FORMAT_G8B8G8R8_422_UNORM specifies a four-component, 32-bit * ename:VK_FORMAT_G8B8G8R8_422_UNORM specifies a four-component, 32-bit
format containing a pair of G components, an R component, and a B format containing a pair of G components, an R component, and a B
@ -1863,71 +1933,114 @@ endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
Block size 16 bytes + Block size 16 bytes +
16 texels/block 16 texels/block
| ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK
| ASTC_5x4 (128 bit) + | ASTC_5x4 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
20 texels/block 20 texels/block
| ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK
| ASTC_5x5 (128 bit) + | ASTC_5x5 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
25 texels/block 25 texels/block
| ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK
| ASTC_6x5 (128 bit) + | ASTC_6x5 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
30 texels/block 30 texels/block
| ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK
| ASTC_6x6 (128 bit) + | ASTC_6x6 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
36 texels/block 36 texels/block
| ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK
| ASTC_8x5 (128 bit) + | ASTC_8x5 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
40 texels/block 40 texels/block
| ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK
| ASTC_8x6 (128 bit) + | ASTC_8x6 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
48 texels/block 48 texels/block
| ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK
| ASTC_8x8 (128 bit) + | ASTC_8x8 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
64 texels/block 64 texels/block
| ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK
| ASTC_10x5 (128 bit) + | ASTC_10x5 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
50 texels/block 50 texels/block
| ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK
| ASTC_10x6 (128 bit) + | ASTC_10x6 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
60 texels/block 60 texels/block
| ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK
| ASTC_10x8 (128 bit) + | ASTC_10x8 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
80 texels/block 80 texels/block
| ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK
| ASTC_10x10 (128 bit) + | ASTC_10x10 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
100 texels/block 100 texels/block
| ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK
| ASTC_12x10 (128 bit) + | ASTC_12x10 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
120 texels/block 120 texels/block
| ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK
| ASTC_12x12 (128 bit) + | ASTC_12x12 (128 bit) +
Block size 16 bytes + Block size 16 bytes +
144 texels/block 144 texels/block
| ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK, + | ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK, +
ifdef::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT, +
endif::VK_EXT_texture_compression_astc_hdr[]
ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK
| D16 (16 bit) + | D16 (16 bit) +
Block size 2 bytes + Block size 2 bytes +

View File

@ -640,6 +640,11 @@ include code:SampleMask in its interface, the fragment coverage is not
modified. modified.
Next, the fragment alpha and coverage values are modified based on the Next, the fragment alpha and coverage values are modified based on the
ifdef::VK_EXT_line_rasterization[]
line coverage factor if the pname:lineRasterizationMode member of the
slink:VkPipelineRasterizationStateCreateInfo structure is
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, and the
endif::VK_EXT_line_rasterization[]
pname:alphaToCoverageEnable and pname:alphaToOneEnable members of the pname:alphaToCoverageEnable and pname:alphaToOneEnable members of the
slink:VkPipelineMultisampleStateCreateInfo structure. slink:VkPipelineMultisampleStateCreateInfo structure.
@ -650,6 +655,15 @@ section).
If that shader output has an integer or unsigned integer type, then these If that shader output has an integer or unsigned integer type, then these
operations are skipped. operations are skipped.
ifdef::VK_EXT_line_rasterization[]
If the pname:lineRasterizationMode member of the
slink:VkPipelineRasterizationStateCreateInfo structure is
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT and the fragment
came from a line segment, then the alpha value is replaced by multiplying it
by the coverage factor for the fragment computed during
<<primsrast-lines-smooth,smooth line rasterization>>.
endif::VK_EXT_line_rasterization[]
If pname:alphaToCoverageEnable is enabled, a temporary coverage value with If pname:alphaToCoverageEnable is enabled, a temporary coverage value with
pname:rasterizationSamples bits is generated where each bit is determined by pname:rasterizationSamples bits is generated where each bit is determined by
the fragment's alpha value. the fragment's alpha value.
@ -897,7 +911,7 @@ include::{generated}/api/enums/VkStencilFaceFlagBits.txt[]
stencil state is updated. stencil state is updated.
* ename:VK_STENCIL_FACE_BACK_BIT specifies that only the back set of * ename:VK_STENCIL_FACE_BACK_BIT specifies that only the back set of
stencil state is updated. stencil state is updated.
* ename:VK_STENCIL_FRONT_AND_BACK is the combination of * ename:VK_STENCIL_FACE_FRONT_AND_BACK is the combination of
ename:VK_STENCIL_FACE_FRONT_BIT and ename:VK_STENCIL_FACE_BACK_BIT, and ename:VK_STENCIL_FACE_FRONT_BIT and ename:VK_STENCIL_FACE_BACK_BIT, and
specifies that both sets of stencil state are updated. specifies that both sets of stencil state are updated.

View File

@ -1005,7 +1005,8 @@ include::{generated}/validity/structs/VkPhysicalDeviceFloatControlsPropertiesKHR
[open,refpage='VkShaderFloatControlsIndependenceKHR',desc='Enum specifying whether, and how, shader float controls can be set separately',type='enums'] [open,refpage='VkShaderFloatControlsIndependenceKHR',desc='Enum specifying whether, and how, shader float controls can be set separately',type='enums']
-- --
Values which may: be set in the shader float controls properties returned by Values which may: be returned in the pname:denormBehaviorIndependence and
pname:roundingModeIndependence fields of
slink:VkPhysicalDeviceFloatControlsPropertiesKHR are: slink:VkPhysicalDeviceFloatControlsPropertiesKHR are:
include::{generated}/api/enums/VkShaderFloatControlsIndependenceKHR.txt[] include::{generated}/api/enums/VkShaderFloatControlsIndependenceKHR.txt[]
@ -2368,6 +2369,35 @@ include::{generated}/validity/structs/VkPhysicalDeviceTexelBufferAlignmentProper
endif::VK_EXT_texel_buffer_alignment[] endif::VK_EXT_texel_buffer_alignment[]
ifdef::VK_EXT_line_rasterization[]
[open,refpage='VkPhysicalDeviceLineRasterizationPropertiesEXT',desc='Structure describing line rasterization properties supported by an implementation',type='structs']
--
The sname:VkPhysicalDeviceLineRasterizationPropertiesEXT structure is
defined as:
include::{generated}/api/structs/VkPhysicalDeviceLineRasterizationPropertiesEXT.txt[]
The members of the sname:VkPhysicalDeviceLineRasterizationPropertiesEXT
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[limits-lineSubPixelPrecisionBits]] pname:lineSubPixelPrecisionBits is
the number of bits of subpixel precision in framebuffer coordinates
[eq]#x~f~# and [eq]#y~f~# when rasterizing <<primsrast-lines,line
segments>>.
If the sname:VkPhysicalDeviceLineRasterizationPropertiesEXT structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
is filled with the implementation-dependent limits.
include::{generated}/validity/structs/VkPhysicalDeviceLineRasterizationPropertiesEXT.txt[]
--
endif::VK_EXT_line_rasterization[]
[[limits-minmax]] [[limits-minmax]]
== Limit Requirements == Limit Requirements
@ -2550,6 +2580,9 @@ ifdef::VK_NV_ray_tracing[]
| code:uint32_t | pname:maxTriangleCount | `<<VK_NV_ray_tracing>>` | code:uint32_t | pname:maxTriangleCount | `<<VK_NV_ray_tracing>>`
| code:uint32_t | pname:maxDescriptorSetAccelerationStructures | `<<VK_NV_ray_tracing>>` | code:uint32_t | pname:maxDescriptorSetAccelerationStructures | `<<VK_NV_ray_tracing>>`
endif::VK_NV_ray_tracing[] endif::VK_NV_ray_tracing[]
ifdef::VK_EXT_line_rasterization[]
| code:uint32_t | pname:lineSubPixelPrecisionBits | `<<VK_EXT_line_rasterization>>`
endif::VK_EXT_line_rasterization[]
|==== |====
[[limits-required]] [[limits-required]]
@ -2787,6 +2820,9 @@ ifdef::VK_NV_ray_tracing[]
| pname:maxTriangleCount | - | 2^29 | min | pname:maxTriangleCount | - | 2^29 | min
| pname:maxDescriptorSetAccelerationStructures | - | 16 | min | pname:maxDescriptorSetAccelerationStructures | - | 16 | min
endif::VK_NV_ray_tracing[] endif::VK_NV_ray_tracing[]
ifdef::VK_EXT_line_rasterization[]
| pname:lineSubPixelPrecisionBits | - | 4 | min
endif::VK_EXT_line_rasterization[]
|==== |====
1:: 1::

View File

@ -1103,6 +1103,25 @@ ifdef::VK_NV_mesh_shader[]
any shader stage in the pipeline with a code:Xfb execution mode. any shader stage in the pipeline with a code:Xfb execution mode.
endif::VK_NV_mesh_shader[] endif::VK_NV_mesh_shader[]
endif::VK_EXT_transform_feedback[] endif::VK_EXT_transform_feedback[]
ifdef::VK_EXT_line_rasterization[]
* [[VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766]]
If the pname:lineRasterizationMode member of a
slink:VkPipelineRasterizationLineStateCreateInfoEXT structure chained to
the pname:pNext chain of pname:pRasterizationState is
ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT and if
rasterization is enabled, then the pname:alphaToCoverageEnable,
pname:alphaToOneEnable, and pname:sampleShadingEnable members of
pname:pMultisampleState must: all be ename:VK_FALSE
* [[VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767]]
If the pname:stippledLineEnable member of
slink:VkPipelineRasterizationLineStateCreateInfoEXT is ename:VK_TRUE and
no element of the pname:pDynamicStates member of pname:pDynamicState is
ename:VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the
pname:lineStippleFactor member of
slink:VkPipelineRasterizationLineStateCreateInfoEXT must: be in the
range [eq]#[1,256]#
endif::VK_EXT_line_rasterization[]
**** ****
include::{generated}/validity/structs/VkGraphicsPipelineCreateInfo.txt[] include::{generated}/validity/structs/VkGraphicsPipelineCreateInfo.txt[]
@ -1320,6 +1339,15 @@ ifdef::VK_NV_shading_rate_image[]
ignored and must: be set dynamically with ignored and must: be set dynamically with
flink:vkCmdSetCoarseSampleOrderNV before any draw commands. flink:vkCmdSetCoarseSampleOrderNV before any draw commands.
endif::VK_NV_shading_rate_image[] endif::VK_NV_shading_rate_image[]
ifdef::VK_EXT_line_rasterization[]
* ename:VK_DYNAMIC_STATE_LINE_STIPPLE_EXT specifies that the
pname:lineStippleFactor and pname:lineStipplePattern state in
slink:VkPipelineRasterizationLineStateCreateInfoEXT will be ignored and
must: be set dynamically with flink:vkCmdSetLineStippleEXT before any
draws are performed with a pipeline state with
slink:VkPipelineRasterizationLineStateCreateInfoEXT member
pname:stippledLineEnable set to ename:VK_TRUE.
endif::VK_EXT_line_rasterization[]
-- --

View File

@ -1548,14 +1548,103 @@ vertex for the point.
[[primsrast-lines]] [[primsrast-lines]]
== Line Segments == Line Segments
A line is drawn by generating a set of fragments overlapping a rectangle [open,refpage='VkPipelineRasterizationLineStateCreateInfoEXT',desc='Structure specifying parameters of a newly created pipeline line rasterization state',type='structs']
centered on the line segment. --
Each line segment has an associated width that controls the width of that
rectangle. Line segment rasterization options are controlled by the
slink:VkPipelineRasterizationLineStateCreateInfoEXT structure.
The sname:VkPipelineRasterizationLineStateCreateInfoEXT structure is defined
as:
include::{generated}/api/structs/VkPipelineRasterizationLineStateCreateInfoEXT.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:lineRasterizationMode selects the style of line rasterization and
is of type elink:VkLineRasterizationModeEXT.
* pname:stippledLineEnable enables <<primsrast-lines-stipple, stippled
line rasterization>>.
* pname:lineStippleFactor is the repeat factor used in stippled line
rasterization.
* pname:lineStipplePattern is the bit pattern used in stippled line
rasterization.
.Valid Usage
****
* [[VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768]]
If pname:lineRasterizationMode is
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the
<<features-rectangularLines,rectangularLines>> feature must: be enabled
* [[VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769]]
If pname:lineRasterizationMode is
ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the
<<features-bresenhamLines,bresenhamLines>> feature must: be enabled
* [[VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770]]
If pname:lineRasterizationMode is
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the
<<features-bresenhamLines,smoothLines>> feature must: be enabled
* [[VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771]]
If pname:stippledLineEnable is ename:VK_TRUE and
pname:lineRasterizationMode is
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the
<<features-stippledRectangularLines,stippledRectangularLines>> feature
must: be enabled
* [[VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772]]
If pname:stippledLineEnable is ename:VK_TRUE and
pname:lineRasterizationMode is
ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the
<<features-stippledBresenhamLines,stippledBresenhamLines>> feature must:
be enabled
* [[VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773]]
If pname:stippledLineEnable is ename:VK_TRUE and
pname:lineRasterizationMode is
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the
<<features-stippledSmoothLines,stippledSmoothLines>> feature must: be
enabled
* [[VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774]]
If pname:stippledLineEnable is ename:VK_TRUE and
pname:lineRasterizationMode is
ename:VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the
<<features-stippledRectangularLines,stippledRectangularLines>> feature
must: be enabled and slink:VkPhysicalDeviceLimits::pname:strictLines
must: be ename:VK_TRUE
****
include::{generated}/validity/structs/VkPipelineRasterizationLineStateCreateInfoEXT.txt[]
--
[open,refpage='VkLineRasterizationModeEXT',desc='Line rasterization modes',type='enums']
--
Possible values of
slink:VkPipelineRasterizationLineStateCreateInfoEXT::pname:lineRasterizationMode
are:
include::{generated}/api/enums/VkLineRasterizationModeEXT.txt[]
* ename:VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT is equivalent to
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT if
slink:VkPhysicalDeviceLimits::pname:strictLines is ename:VK_TRUE,
otherwise lines are drawn as non-pname:strictLines parallelograms.
Both of these modes are defined in <<primsrast-lines-basic,Basic Line
Segment Rasterization>>.
* ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT specifies lines drawn
as if they were rectangles extruded from the line
* ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT specifies lines drawn by
determining which pixel diamonds the line intersects and exits, as
defined in <<primsrast-lines-bresenham,Bresenham Line Segment
Rasterization>>.
* ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT specifies lines
drawn if they were rectangles extruded from the line, with alpha
falloff, as defined in <<primsrast-lines-smooth,Smooth Lines>>.
--
[open,refpage='vkCmdSetLineWidth',desc='Set the dynamic line width state',type='protos'] [open,refpage='vkCmdSetLineWidth',desc='Set the dynamic line width state',type='protos']
-- --
Each line segment has an associated width.
The line width is specified by the The line width is specified by the
slink:VkPipelineRasterizationStateCreateInfo::pname:lineWidth property of slink:VkPipelineRasterizationStateCreateInfo::pname:lineWidth property of
the currently active pipeline, if the pipeline was not created with the currently active pipeline, if the pipeline was not created with
@ -1602,8 +1691,16 @@ endif::VK_EXT_fragment_density_map[]
[[primsrast-lines-basic]] [[primsrast-lines-basic]]
=== Basic Line Segment Rasterization === Basic Line Segment Rasterization
Rasterized line segments produce fragments which intersect a rectangle ifdef::VK_EXT_line_rasterization[]
centered on the line segment. If the pname:lineRasterizationMode member of
slink:VkPipelineRasterizationLineStateCreateInfoEXT is
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, rasterized
endif::VK_EXT_line_rasterization[]
ifndef::VK_EXT_line_rasterization[]
Rasterized
endif::VK_EXT_line_rasterization[]
line segments produce fragments which intersect a rectangle centered on the
line segment.
Two of the edges are parallel to the specified line segment; each is at a Two of the edges are parallel to the specified line segment; each is at a
distance of one-half the current width from that segment in directions distance of one-half the current width from that segment in directions
perpendicular to the direction of the line. perpendicular to the direction of the line.
@ -1710,6 +1807,219 @@ attributes.
[[fig-non-strict-lines]] [[fig-non-strict-lines]]
image::{images}/non_strict_lines.svg[align="center",title="Non strict lines",opts="{imageopts}"] image::{images}/non_strict_lines.svg[align="center",title="Non strict lines",opts="{imageopts}"]
ifdef::VK_EXT_line_rasterization[]
[[primsrast-lines-bresenham]]
=== Bresenham Line Segment Rasterization
If pname:lineRasterizationMode is
ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the following rules
replace the line rasterization rules defined in <<primsrast-lines-basic,
Basic Line Segment Rasterization>>.
Line segment rasterization begins by characterizing the segment as either
_x-major_ or _y-major_.
x-major line segments have slope in the closed interval [eq]#[-1,1]#; all
other line segments are y-major (slope is determined by the segment's
endpoints).
We specify rasterization only for x-major segments except in cases where the
modifications for y-major segments are not self-evident.
Ideally, Vulkan uses a _diamond-exit_ rule to determine those fragments that
are produced by rasterizing a line segment.
For each fragment [eq]#f# with center at framebuffer coordinates [eq]#x~f~#
and [eq]#y~f~#, define a diamond-shaped region that is the intersection of
four half planes:
[latexmath]
+++++++++++++++++++
R_f = \{ (x,y) \mid | x - x_f | + | y - y_f | < \frac{1}{2} \}
+++++++++++++++++++
Essentially, a line segment starting at [eq]#p~a~# and ending at [eq]#p~b~#
produces those fragments [eq]#f# for which the segment intersects
[eq]#R~f~#, except if [eq]#p~b~# is contained in [eq]#R~f~#.
image::{images}/bresenham.svg[title="Visualization of Bresenham's algorithm",align="center",opts="{imageopts}"]
To avoid difficulties when an endpoint lies on a boundary of [eq]#R~f~# we
(in principle) perturb the supplied endpoints by a tiny amount.
Let [eq]#p~a~# and [eq]#p~b~# have framebuffer coordinates [eq]#(x~a~,
y~a~)# and [eq]#(x~b~, y~b~)#, respectively.
Obtain the perturbed endpoints [eq]#p~a~'# given by [eq]#(x~a~, y~a~) -
({epsilon}, {epsilon}^2^)# and [eq]#p~b~'# given by [eq]#(x~b~, y~b~) -
({epsilon}, {epsilon}^2^)#.
Rasterizing the line segment starting at [eq]#p~a~# and ending at [eq]#p~b~#
produces those fragments [eq]#f# for which the segment starting at
[eq]#p~a~'# and ending on [eq]#p~b~'# intersects [eq]#R~f~#, except if
[eq]#p~b~'# is contained in [eq]#R~f~#.
[eq]#{epsilon}# is chosen to be so small that rasterizing the line segment
produces the same fragments when [eq]#{delta}# is substituted for
[eq]#{epsilon}# for any [eq]#0 < {delta} {leq} {epsilon}#.
When [eq]#p~a~# and [eq]#p~b~# lie on fragment centers, this
characterization of fragments reduces to Bresenham's algorithm with one
modification: lines produced in this description are "half-open," meaning
that the final fragment (corresponding to [eq]#p~b~#) is not drawn.
This means that when rasterizing a series of connected line segments, shared
endpoints will be produced only once rather than twice (as would occur with
Bresenham's algorithm).
Implementations may: use other line segment rasterization algorithms,
subject to the following rules:
* The coordinates of a fragment produced by the algorithm must: not deviate
by more than one unit in either x or y framebuffer coordinates from a
corresponding fragment produced by the diamond-exit rule.
* The total number of fragments produced by the algorithm must: not differ
from that produced by the diamond-exit rule by no more than one.
* For an x-major line, two fragments that lie in the same
framebuffer-coordinate column must: not be produced (for a y-major line,
two fragments that lie in the same framebuffer-coordinate row must: not
be produced).
* If two line segments share a common endpoint, and both segments are
either x-major (both left-to-right or both right-to-left) or y-major
(both bottom-to-top or both top-to-bottom), then rasterizing both
segments must: not produce duplicate fragments.
Fragments also must: not be omitted so as to interrupt continuity of the
connected segments.
The actual width [eq]#w# of ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT
lines is determined by rounding the line width to the nearest integer,
clamping it to the implementation-dependent pname:lineWidthRange (with both
values rounded to the nearest integer), then clamping it to be no less than
1.
ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT line segments of width other
than one are rasterized by offsetting them in the minor direction (for an
x-major line, the minordirection is y, and for a y-major line, the minor
direction is x) and replicating fragments in the minor direction.
If the line segment has endpoints given by [eq]#(x~0~, y~0~)# and
[eq]#(x~1~, y~1~)# in framebuffer coordinates, the segment with endpoints
latexmath:[(x_0, y_0 - \frac{w-1}{2})] and latexmath:[(x_1, y_1 -
\frac{w-1}{2})] is rasterized, but instead of a single fragment, a column of
fragments of height w (a row of fragments of length w for a y-major segment)
is produced at each x (y for y-major) location.
The lowest fragment of this column is the fragment that would be produced by
rasterizing the segment of width 1 with the modified coordinates.
When ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT lines are being
rasterized, sample locations may: all be treated as being at the pixel
center (this may: affect attribute and depth interpolation).
[[primsrast-lines-stipple]]
=== Line Stipple
If the pname:stippledLineEnable member of
slink:VkPipelineRasterizationLineStateCreateInfoEXT is ename:VK_TRUE, then
lines are rasterized with a _line stipple_ determined by
pname:lineStippleFactor and pname:lineStipplePattern.
pname:lineStipplePattern is an unsigned 16-bit integer that determines which
fragments are to be drawn or discarded when the line is rasterized.
pname:lineStippleFactor is a count that is used to modify the effective line
stipple by causing each bit in pname:lineStipplePattern to be used
pname:lineStippleFactor times.
Line stippling discards certain fragments that are produced by
rasterization.
The masking is achieved using three parameters: the 16-bit line stipple
pattern p, the line stipple factor r, and an integer stipple counter s.
Let
[latexmath]
+++++++++++++++++++
b = \lfloor \frac{s}{r} \rfloor \bmod 16
+++++++++++++++++++
Then a fragment is produced if the b'th bit of p is 1, and discarded
otherwise.
The bits of p are numbered with 0 being the least significant and 15 being
the most significant.
The initial value of s is zero.
For ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT lines, s is incremented
after production of each fragment of a line segment (fragments are produced
in order, beginning at the starting point and working towards the ending
point).
For ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT and
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT lines, the
rectangular region is subdivided into adjacent unit-length rectangles, and s
is incremented once for each rectangle.
Rectangles with a value of s such that the b'th bit of p is zero are
discarded.
If the last rectangle in a line segment is shorter than unit-length, then
the remainder may: carry over to the next line segment in the line strip
using the same value of s (this is the preferred behavior, for the stipple
pattern to appear more consistent through the strip).
s is reset to 0 at the start of each strip (for line strips), and before
every line segment in a group of independent segments.
If the line segment has been clipped, then the value of s at the beginning
of the line segment is implementation-dependent.
[open,refpage='vkCmdSetLineStippleEXT',desc='Set the dynamic line width state',type='protos']
--
The line stipple factor and pattern are specified by the
slink:VkPipelineRasterizationLineStateCreateInfoEXT::pname:lineStippleFactor
and
slink:VkPipelineRasterizationLineStateCreateInfoEXT::pname:lineStipplePattern
members of the currently active pipeline, if the pipeline was not created
with ename:VK_DYNAMIC_STATE_LINE_STIPPLE_EXT enabled.
Otherwise, the line stipple factor and pattern are set by calling
fname:vkCmdSetLineStippleEXT:
include::{generated}/api/protos/vkCmdSetLineStippleEXT.txt[]
* pname:commandBuffer is the command buffer into which the command will be
recorded.
* pname:lineStippleFactor is the repeat factor used in stippled line
rasterization.
* pname:lineStipplePattern is the bit pattern used in stippled line
rasterization.
.Valid Usage
****
* [[VUID-vkCmdSetLineStippleEXT-None-02775]]
The bound graphics pipeline must: have been created with the
ename:VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled
* [[VUID-vkCmdSetLineStippleEXT-lineStippleFactor-02776]]
pname:lineStippleFactor must: be in the range [eq]#[1,256]#
****
include::{generated}/validity/protos/vkCmdSetLineStippleEXT.txt[]
--
[[primsrast-lines-smooth]]
=== Smooth Lines
If the pname:lineRasterizationMode member of
slink:VkPipelineRasterizationLineStateCreateInfoEXT is
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then lines are
considered to be rectangles using the same geometry as for
ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT lines.
The rules for determining which pixels are covered are
implementation-dependent, and may: include nearby pixels where no sample
locations are covered or where the rectangle doesn't intersect the pixel at
all.
For each pixel that is considered covered, the fragment computes a coverage
value that approximates the area of the intersection of the rectangle with
the pixel square, and this coverage value is multiplied into the color
location 0's alpha value after fragment shading, as described in
<<fragops-covg,Multisample Coverage>>.
[NOTE]
.Note
====
The details of the rasterization rules and area calculation are left
intentionally vague, to allow implementations to generate coverage and
values that are aesthetically pleasing.
====
endif::VK_EXT_line_rasterization[]
[[primsrast-polygons]] [[primsrast-polygons]]
== Polygons == Polygons

View File

@ -1493,9 +1493,9 @@ ename:VK_IMAGE_LAYOUT_UNDEFINED layout.
endif::VK_EXT_sample_locations[] endif::VK_EXT_sample_locations[]
If two subpasses use the same attachment in different layouts, and both If two subpasses use the same attachment, and both subpasses use the
layouts are read-only, no subpass dependency needs to be specified between attachment in a read-only layout, no subpass dependency needs to be
those subpasses. specified between those subpasses.
If an implementation treats those layouts separately, it must: insert an If an implementation treats those layouts separately, it must: insert an
implicit subpass dependency between those subpasses to separate the uses in implicit subpass dependency between those subpasses to separate the uses in
each layout. each layout.
@ -2287,6 +2287,15 @@ include::{generated}/api/protos/vkCreateFramebuffer.txt[]
* pname:pFramebuffer points to a slink:VkFramebuffer handle in which the * pname:pFramebuffer points to a slink:VkFramebuffer handle in which the
resulting framebuffer object is returned. resulting framebuffer object is returned.
.Valid Usage
****
* [[VUID-vkCreateFramebuffer-pCreateInfo-02777]]
If pname:pCreateInfo->pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, and pname:attachmentCount
is not `0`, each element of pname:pCreateInfo->pname:pAttachments must:
have been created on pname:device
****
include::{generated}/validity/protos/vkCreateFramebuffer.txt[] include::{generated}/validity/protos/vkCreateFramebuffer.txt[]
-- --
@ -2376,6 +2385,11 @@ slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples.
* [[VUID-VkFramebufferCreateInfo-attachmentCount-00876]] * [[VUID-VkFramebufferCreateInfo-attachmentCount-00876]]
pname:attachmentCount must: be equal to the attachment count specified pname:attachmentCount must: be equal to the attachment count specified
in pname:renderPass in pname:renderPass
* [[VUID-VkFramebufferCreateInfo-flags-02778]]
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, and pname:attachmentCount
is not `0`, pname:pAttachments must be a valid pointer to an array of
pname:attachmentCount valid slink:VkImageView handles
* [[VUID-VkFramebufferCreateInfo-pAttachments-00877]] * [[VUID-VkFramebufferCreateInfo-pAttachments-00877]]
If pname:flags does not include If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
@ -2516,8 +2530,10 @@ ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
endif::VK_VERSION_1_1,VK_KHR_multiview[] endif::VK_VERSION_1_1,VK_KHR_multiview[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-00891]] * [[VUID-VkFramebufferCreateInfo-pAttachments-00891]]
Each element of pname:pAttachments that is a 2D or 2D array image view If pname:flags does not include
taken from a 3D image must: not be a depth/stencil format ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments that is a 2D or 2D array image view taken from a 3D
image must: not be a depth/stencil format
endif::VK_VERSION_1_1,VK_KHR_maintenance1[] endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-VkFramebufferCreateInfo-flags-03188]] * [[VUID-VkFramebufferCreateInfo-flags-03188]]
If pname:flags does not include If pname:flags does not include
@ -2927,6 +2943,10 @@ record the commands for the first subpass of that render pass.
.Valid Usage .Valid Usage
**** ****
* [[VUID-vkCmdBeginRenderPass2KHR-framebuffer-02779]]
Both the pname:framebuffer and pname:renderPass members of
pname:pRenderPassBegin must: have been created on the same
slink:VkDevice that pname:commandBuffer was allocated on
* [[VUID-vkCmdBeginRenderPass2KHR-initialLayout-03094]] * [[VUID-vkCmdBeginRenderPass2KHR-initialLayout-03094]]
If any of the pname:initialLayout or pname:finalLayout member of the If any of the pname:initialLayout or pname:finalLayout member of the
sname:VkAttachmentDescription structures or the pname:layout member of sname:VkAttachmentDescription structures or the pname:layout member of
@ -3070,11 +3090,6 @@ pass.
the pname:renderPass member of the sname:VkFramebufferCreateInfo the pname:renderPass member of the sname:VkFramebufferCreateInfo
structure specified when creating pname:framebuffer. structure specified when creating pname:framebuffer.
ifdef::VK_KHR_imageless_framebuffer[] ifdef::VK_KHR_imageless_framebuffer[]
* [[VUID-VkRenderPassBeginInfo-pNext-03206]]
If the <<features-imagelessFramebuffer, imageless framebuffer>> feature
is not enabled, and the pname:pNext chain includes an instance of
slink:VkRenderPassAttachmentBeginInfoKHR, its pname:attachmentCount
must: be zero
* [[VUID-VkRenderPassBeginInfo-framebuffer-03207]] * [[VUID-VkRenderPassBeginInfo-framebuffer-03207]]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that did not include slink:VkFramebufferCreateInfo::pname:flags value that did not include
@ -3089,11 +3104,19 @@ ifdef::VK_KHR_imageless_framebuffer[]
the pname:pNext chain must: be equal to the value of the pname:pNext chain must: be equal to the value of
slink:VkFramebufferAttachmentsCreateInfoKHR::pname:attachmentImageInfoCount slink:VkFramebufferAttachmentsCreateInfoKHR::pname:attachmentImageInfoCount
used to create pname:framebuffer used to create pname:framebuffer
* [[VUID-VkRenderPassBeginInfo-framebuffer-02780]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: have been created on the same slink:VkDevice as
pname:framebuffer and pname:renderPass
* [[VUID-VkRenderPassBeginInfo-framebuffer-03209]] * [[VUID-VkRenderPassBeginInfo-framebuffer-03209]]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageCreateInfo::pname:flags equal to the pname:flags member of slink:VkImageCreateInfo::pname:flags equal to the pname:flags member of
@ -3104,7 +3127,7 @@ ifdef::VK_KHR_imageless_framebuffer[]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageCreateInfo::pname:usage equal to the pname:usage member of slink:VkImageCreateInfo::pname:usage equal to the pname:usage member of
@ -3115,7 +3138,7 @@ ifdef::VK_KHR_imageless_framebuffer[]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView with a width equal to the pname:width chain must: be a slink:VkImageView with a width equal to the pname:width
member of the corresponding element of member of the corresponding element of
@ -3125,7 +3148,7 @@ ifdef::VK_KHR_imageless_framebuffer[]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView with a height equal to the chain must: be a slink:VkImageView with a height equal to the
pname:height member of the corresponding element of pname:height member of the corresponding element of
@ -3135,7 +3158,7 @@ ifdef::VK_KHR_imageless_framebuffer[]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageViewCreateInfo::pname:subresourceRange.pname:layerCount slink:VkImageViewCreateInfo::pname:subresourceRange.pname:layerCount
@ -3146,7 +3169,7 @@ ifdef::VK_KHR_imageless_framebuffer[]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageFormatListCreateInfoKHR::pname:viewFormatCount equal to the slink:VkImageFormatListCreateInfoKHR::pname:viewFormatCount equal to the
@ -3157,7 +3180,7 @@ ifdef::VK_KHR_imageless_framebuffer[]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a set of chain must: be a slink:VkImageView of an image created with a set of
elements in slink:VkImageFormatListCreateInfoKHR::pname:pViewFormats elements in slink:VkImageFormatListCreateInfoKHR::pname:pViewFormats
@ -3169,7 +3192,7 @@ ifdef::VK_KHR_imageless_framebuffer[]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageViewCreateInfo::pname:format equal to the corresponding slink:VkImageViewCreateInfo::pname:format equal to the corresponding
@ -3178,7 +3201,7 @@ ifdef::VK_KHR_imageless_framebuffer[]
If pname:framebuffer was created with a If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of pname:pAttachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageCreateInfo::pname:samples equal to the corresponding value slink:VkImageCreateInfo::pname:samples equal to the corresponding value

488
images/bresenham.svg Normal file
View File

@ -0,0 +1,488 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="391.00003"
height="321.00003"
viewBox="0 0 103.4521 84.931256"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="bresenham.svg">
<defs
id="defs2">
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path2950"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1483"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1481"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend-0"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path977-6"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1483-7"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
inkscape:connector-curvature="0"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1481-0" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path2320"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(0.4,0,0,0.4,4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker2639"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path2637"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.48"
inkscape:cx="208.25234"
inkscape:cy="168.34984"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:snap-object-midpoints="true"
inkscape:snap-text-baseline="true"
inkscape:window-width="1920"
inkscape:window-height="935"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
fit-margin-top="20"
fit-margin-right="20"
fit-margin-bottom="20"
fit-margin-left="20"
units="px"
inkscape:snap-center="true">
<inkscape:grid
type="xygrid"
id="grid12"
originx="-23.680211"
originy="-47.4927"
dotted="false" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-31.430062,48.736474)">
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 101.67694,-43.312516 36.85402,21.510402"
id="path2597"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<g
id="g1463"
transform="matrix(1.7500001,0,0,1.7500001,-27.968899,-72.260452)"
style="stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none">
<circle
r="0.52778977"
cy="21.833345"
cx="42.333332"
id="path4517"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="21.833345"
cx="52.916668"
id="path4517-7"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="21.833345"
cx="63.5"
id="path4517-78"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="21.833345"
cx="74.083336"
id="path4517-7-9"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="21.833345"
cx="84.666664"
id="path4517-0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccccccccccccccccccccc"
inkscape:connector-curvature="0"
id="path1171"
d="m 37.041666,16.541677 h 52.916665 v 42.333331 l -52.91666,4e-6 -5e-6,-42.333333 m 10.583334,0 4e-6,42.333333 m 10.583332,0 -4e-6,-42.333333 m 10.583332,0 8e-6,42.333333 m 10.583336,0 -8e-6,-42.333333 m 10.583336,0 v 42.333333 m -5e-6,-10.583337 H 37.041666 m 10e-7,-10.58333 52.916664,-2e-6 m 0,-10.583333 -52.916664,3e-6"
style="fill:none;stroke:#808080;stroke-width:0.15119047;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="32.416679"
cx="42.333332"
id="path4517-6"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="32.416679"
cx="52.916668"
id="path4517-7-3"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="32.416679"
cx="63.5"
id="path4517-78-9"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="32.416679"
cx="74.083336"
id="path4517-7-9-1"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="32.416679"
cx="84.666664"
id="path4517-0-6"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="43.000011"
cx="42.333332"
id="path4517-4"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="43.000011"
cx="52.916668"
id="path4517-7-2"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="43.000011"
cx="63.5"
id="path4517-78-3"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="43.000011"
cx="74.083336"
id="path4517-7-9-0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="43.000011"
cx="84.666664"
id="path4517-0-9"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="53.583344"
cx="42.333332"
id="path4517-14"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="53.583344"
cx="52.916668"
id="path4517-7-4"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="53.583344"
cx="63.5"
id="path4517-78-7"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="53.583344"
cx="74.083336"
id="path4517-7-9-8"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.52778977"
cy="53.583344"
cx="84.666664"
id="path4517-0-7"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15119047;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 120.19778,-43.312516 46.114437,30.770819"
id="path2597-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 83.156105,-43.312516 36.85402,2.9895682"
id="path2597-1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 64.635271,-43.312516 36.85402,-15.531266"
id="path2597-1-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="m 46.114437,-43.312516 -9.260417,9.260417"
id="path2597-1-9-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 129.45819,-34.052099 64.635271,30.770819"
id="path2597-1-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 129.45819,-15.531266 83.156105,30.770819"
id="path2597-1-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 129.45819,2.9895688 101.67694,30.770819"
id="path2597-1-9-68"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="m 129.45819,21.510402 -9.26042,9.260417"
id="path2597-1-9-68-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 64.635271,-43.312516 36.85402,-15.531265"
id="path2597-1-9-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="m 36.85402,-34.052099 64.82292,64.822918"
id="path2597-1-9-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 36.85402,-15.531266 83.156105,30.770819"
id="path2597-1-9-2-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 36.85402,2.9895681 64.635271,30.770819"
id="path2597-1-9-2-0-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="m 36.85402,21.510402 9.260417,9.260417"
id="path2597-1-9-2-0-7-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="m 36.85402,-34.052099 64.82292,64.822918"
id="path2597-1-9-2-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 46.114437,-43.312516 120.19777,30.770819"
id="path2597-1-9-2-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 64.635271,-43.312516 129.45819,21.510402"
id="path2597-1-9-2-8-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="M 83.156105,-43.312516 129.45819,2.9895681"
id="path2597-1-9-2-8-2-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="m 101.67694,-43.312516 27.78125,27.78125"
id="path2597-1-9-2-8-2-4-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.3321186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99635576, 0.99635576;stroke-dashoffset:0;stroke-opacity:1"
d="m 120.19777,-43.312516 9.26042,9.260417"
id="path2597-1-9-2-8-2-4-0-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.52999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="M 42.145687,20.187485 118.87486,-39.343766"
id="path819"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<g
id="g3490"
transform="translate(11.90625,10.583333)"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-opacity:1">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2597-1-9-2-0-7-9-3"
d="m 32.88527,9.6041515 2.645834,2.6458335"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.33205208;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2597-1-9-2-0-7-9-3-2"
d="M 35.531104,9.6041515 32.88527,12.249985"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.33205208;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
id="g3490-6"
transform="translate(30.427084,-7.9375001)"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-opacity:1">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2597-1-9-2-0-7-9-3-1"
d="m 32.88527,9.6041515 2.645834,2.6458335"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.33205208;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2597-1-9-2-0-7-9-3-2-0"
d="M 35.531104,9.6041515 32.88527,12.249985"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.33205208;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
id="g3490-6-5"
transform="translate(48.947918,-26.458334)"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-opacity:1">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2597-1-9-2-0-7-9-3-1-3"
d="m 32.88527,9.6041515 2.645834,2.6458335"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.33205208;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2597-1-9-2-0-7-9-3-2-0-8"
d="M 35.531104,9.6041515 32.88527,12.249985"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.33205208;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
id="g3490-6-5-0"
transform="translate(67.468751,-44.979168)"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-opacity:1">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2597-1-9-2-0-7-9-3-1-3-9"
d="m 32.88527,9.6041515 2.645834,2.6458335"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.33205208;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2597-1-9-2-0-7-9-3-2-0-8-0"
d="M 35.531104,9.6041515 32.88527,12.249985"
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.33205208;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -1,2 +1,2 @@
# The value to start tagging VU statements at, unless overridden by -nextvu # The value to start tagging VU statements at, unless overridden by -nextvu
startVUID = 2765 startVUID = 2784

View File

@ -154,7 +154,7 @@ server.
<type category="define">// Vulkan 1.1 version number <type category="define">// Vulkan 1.1 version number
#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type> #define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
<type category="define">// Version of this file <type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 116</type> #define <name>VK_HEADER_VERSION</name> 117</type>
<type category="define"> <type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type> #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -201,7 +201,7 @@ typedef void <name>CAMetalLayer</name>;
<comment>Bitmask types</comment> <comment>Bitmask types</comment>
<type requires="VkFramebufferCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFramebufferCreateFlags</name>;</type> <type requires="VkFramebufferCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFramebufferCreateFlags</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkQueryPoolCreateFlags</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkQueryPoolCreateFlags</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkRenderPassCreateFlags</name>;</type> <type requires="VkRenderPassCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkRenderPassCreateFlags</name>;</type>
<type requires="VkSamplerCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSamplerCreateFlags</name>;</type> <type requires="VkSamplerCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSamplerCreateFlags</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineLayoutCreateFlags</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineLayoutCreateFlags</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCacheCreateFlags</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCacheCreateFlags</name>;</type>
@ -237,7 +237,7 @@ typedef void <name>CAMetalLayer</name>;
<type requires="VkFormatFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFormatFeatureFlags</name>;</type> <type requires="VkFormatFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFormatFeatureFlags</name>;</type>
<type requires="VkQueryControlFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryControlFlags</name>;</type> <type requires="VkQueryControlFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryControlFlags</name>;</type>
<type requires="VkQueryResultFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryResultFlags</name>;</type> <type requires="VkQueryResultFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryResultFlags</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkShaderModuleCreateFlags</name>;</type> <type requires="VkShaderModuleCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkShaderModuleCreateFlags</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkEventCreateFlags</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkEventCreateFlags</name>;</type>
<type requires="VkCommandPoolCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolCreateFlags</name>;</type> <type requires="VkCommandPoolCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolCreateFlags</name>;</type>
<type requires="VkCommandPoolResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolResetFlags</name>;</type> <type requires="VkCommandPoolResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolResetFlags</name>;</type>
@ -331,6 +331,7 @@ typedef void <name>CAMetalLayer</name>;
<type requires="VkResolveModeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkResolveModeFlagsKHR</name>;</type> <type requires="VkResolveModeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkResolveModeFlagsKHR</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationStateStreamCreateFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationStateStreamCreateFlagsEXT</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationDepthClipStateCreateFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationDepthClipStateCreateFlagsEXT</name>;</type>
<type requires="VkSwapchainImageUsageFlagBitsANDROID" category="bitmask">typedef <type>VkFlags</type> <name>VkSwapchainImageUsageFlagsANDROID</name>;</type>
<comment>Types which can be void pointers or class pointers, selected at compile time</comment> <comment>Types which can be void pointers or class pointers, selected at compile time</comment>
@ -506,6 +507,8 @@ typedef void <name>CAMetalLayer</name>;
<type name="VkPerformanceOverrideTypeINTEL" category="enum"/> <type name="VkPerformanceOverrideTypeINTEL" category="enum"/>
<type name="VkPerformanceParameterTypeINTEL" category="enum"/> <type name="VkPerformanceParameterTypeINTEL" category="enum"/>
<type name="VkPerformanceValueTypeINTEL" category="enum"/> <type name="VkPerformanceValueTypeINTEL" category="enum"/>
<type name="VkLineRasterizationModeEXT" category="enum"/>
<type name="VkShaderModuleCreateFlagBits" category="enum"/>
<comment>WSI extensions</comment> <comment>WSI extensions</comment>
<type name="VkColorSpaceKHR" category="enum"/> <type name="VkColorSpaceKHR" category="enum"/>
@ -562,6 +565,7 @@ typedef void <name>CAMetalLayer</name>;
<type name="VkDebugUtilsMessageTypeFlagBitsEXT" category="enum"/> <type name="VkDebugUtilsMessageTypeFlagBitsEXT" category="enum"/>
<type name="VkFullScreenExclusiveEXT" category="enum"/> <type name="VkFullScreenExclusiveEXT" category="enum"/>
<type name="VkShaderFloatControlsIndependenceKHR" category="enum"/> <type name="VkShaderFloatControlsIndependenceKHR" category="enum"/>
<type name="VkSwapchainImageUsageFlagBitsANDROID" category="enum"/>
<comment>Enumerated types in the header, but not used by the API</comment> <comment>Enumerated types in the header, but not used by the API</comment>
<type name="VkVendorId" category="enum"/> <type name="VkVendorId" category="enum"/>
@ -1568,7 +1572,7 @@ typedef void <name>CAMetalLayer</name>;
<member optional="true"><type>VkFramebufferCreateFlags</type> <name>flags</name></member> <member optional="true"><type>VkFramebufferCreateFlags</type> <name>flags</name></member>
<member><type>VkRenderPass</type> <name>renderPass</name></member> <member><type>VkRenderPass</type> <name>renderPass</name></member>
<member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member> <member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
<member len="attachmentCount">const <type>VkImageView</type>* <name>pAttachments</name></member> <member noautovalidity="true" len="attachmentCount">const <type>VkImageView</type>* <name>pAttachments</name></member>
<member><type>uint32_t</type> <name>width</name></member> <member><type>uint32_t</type> <name>width</name></member>
<member><type>uint32_t</type> <name>height</name></member> <member><type>uint32_t</type> <name>height</name></member>
<member><type>uint32_t</type> <name>layers</name></member> <member><type>uint32_t</type> <name>layers</name></member>
@ -3023,6 +3027,10 @@ typedef void <name>CAMetalLayer</name>;
<member noautovalidity="true"><type>void</type>* <name>pNext</name></member> <member noautovalidity="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>hostQueryReset</name></member> <member><type>VkBool32</type> <name>hostQueryReset</name></member>
</type> </type>
<type category="struct" name="VkNativeBufferUsage2ANDROID">
<member><type>uint64_t</type> <name>consumer</name></member>
<member><type>uint64_t</type> <name>producer</name></member>
</type>
<type category="struct" name="VkNativeBufferANDROID"> <type category="struct" name="VkNativeBufferANDROID">
<member values="VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID"><type>VkStructureType</type> <name>sType</name></member> <member values="VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member> <member>const <type>void</type>* <name>pNext</name></member>
@ -3030,6 +3038,17 @@ typedef void <name>CAMetalLayer</name>;
<member><type>int</type> <name>stride</name></member> <member><type>int</type> <name>stride</name></member>
<member><type>int</type> <name>format</name></member> <member><type>int</type> <name>format</name></member>
<member><type>int</type> <name>usage</name></member> <member><type>int</type> <name>usage</name></member>
<member><type>VkNativeBufferUsage2ANDROID</type> <name>usage2</name></member>
</type>
<type category="struct" name="VkSwapchainImageCreateInfoANDROID">
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member><type>VkSwapchainImageUsageFlagsANDROID</type> <name>usage</name></member>
</type>
<type category="struct" name="VkPhysicalDevicePresentationPropertiesANDROID">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>sharedImage</name></member>
</type> </type>
<type category="struct" name="VkShaderResourceUsageAMD" returnedonly="true"> <type category="struct" name="VkShaderResourceUsageAMD" returnedonly="true">
<member><type>uint32_t</type> <name>numUsedVgprs</name></member> <member><type>uint32_t</type> <name>numUsedVgprs</name></member>
@ -3838,6 +3857,11 @@ typedef void <name>CAMetalLayer</name>;
<member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member> <member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
<member len="attachmentCount">const <type>VkImageView</type>* <name>pAttachments</name></member> <member len="attachmentCount">const <type>VkImageView</type>* <name>pAttachments</name></member>
</type> </type>
<type category="struct" name="VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member><type>VkBool32</type> <name>textureCompressionASTC_HDR</name></member> <!-- ASTC HDR texture compression formats -->
</type>
<type category="struct" name="VkPhysicalDeviceCooperativeMatrixFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> <type category="struct" name="VkPhysicalDeviceCooperativeMatrixFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member> <member><type>void</type>* <name>pNext</name></member>
@ -3976,6 +4000,11 @@ typedef void <name>CAMetalLayer</name>;
<member>const <type>void</type>* <name>pNext</name></member> <member>const <type>void</type>* <name>pNext</name></member>
<member><type>VkPerformanceConfigurationTypeINTEL</type> <name>type</name></member> <member><type>VkPerformanceConfigurationTypeINTEL</type> <name>type</name></member>
</type> </type>
<type category="struct" name="VkPhysicalDeviceIndexTypeUint8FeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member noautovalidity="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>indexTypeUint8</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceShaderSMBuiltinsPropertiesNV" returnedonly="true" structextends="VkPhysicalDeviceProperties2"> <type category="struct" name="VkPhysicalDeviceShaderSMBuiltinsPropertiesNV" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member> <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member> <member><type>void</type>* <name>pNext</name></member>
@ -4025,6 +4054,29 @@ typedef void <name>CAMetalLayer</name>;
<member><type>void</type>* <name>pNext</name></member> <member><type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>requiredSubgroupSize</name></member> <member><type>uint32_t</type> <name>requiredSubgroupSize</name></member>
</type> </type>
<type category="struct" name="VkPhysicalDeviceLineRasterizationFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member noautovalidity="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>rectangularLines</name></member>
<member><type>VkBool32</type> <name>bresenhamLines</name></member>
<member><type>VkBool32</type> <name>smoothLines</name></member>
<member><type>VkBool32</type> <name>stippledRectangularLines</name></member>
<member><type>VkBool32</type> <name>stippledBresenhamLines</name></member>
<member><type>VkBool32</type> <name>stippledSmoothLines</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceLineRasterizationPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>lineSubPixelPrecisionBits</name></member>
</type>
<type category="struct" name="VkPipelineRasterizationLineStateCreateInfoEXT" structextends="VkPipelineRasterizationStateCreateInfo">
<member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member><type>VkLineRasterizationModeEXT</type> <name>lineRasterizationMode</name></member>
<member><type>VkBool32</type> <name>stippledLineEnable</name></member>
<member optional="true"><type>uint32_t</type> <name>lineStippleFactor</name></member>
<member optional="true"><type>uint16_t</type> <name>lineStipplePattern</name></member>
</type>
</types> </types>
<comment>Vulkan enumerant (token) definitions</comment> <comment>Vulkan enumerant (token) definitions</comment>
@ -4801,7 +4853,8 @@ typedef void <name>CAMetalLayer</name>;
<enums name="VkStencilFaceFlagBits" type="bitmask"> <enums name="VkStencilFaceFlagBits" type="bitmask">
<enum bitpos="0" name="VK_STENCIL_FACE_FRONT_BIT" comment="Front face"/> <enum bitpos="0" name="VK_STENCIL_FACE_FRONT_BIT" comment="Front face"/>
<enum bitpos="1" name="VK_STENCIL_FACE_BACK_BIT" comment="Back face"/> <enum bitpos="1" name="VK_STENCIL_FACE_BACK_BIT" comment="Back face"/>
<enum value="0x00000003" name="VK_STENCIL_FRONT_AND_BACK" comment="Front and back faces"/> <enum value="0x00000003" name="VK_STENCIL_FACE_FRONT_AND_BACK" comment="Front and back faces"/>
<enum name="VK_STENCIL_FRONT_AND_BACK" alias="VK_STENCIL_FACE_FRONT_AND_BACK" comment="Alias for backwards compatibility"/>
</enums> </enums>
<enums name="VkDescriptorPoolCreateFlagBits" type="bitmask"> <enums name="VkDescriptorPoolCreateFlagBits" type="bitmask">
<enum bitpos="0" name="VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT" comment="Descriptor sets may be freed individually"/> <enum bitpos="0" name="VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT" comment="Descriptor sets may be freed individually"/>
@ -4844,6 +4897,9 @@ typedef void <name>CAMetalLayer</name>;
<enum bitpos="7" name="VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"/> <enum bitpos="7" name="VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"/>
<enum bitpos="8" name="VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"/> <enum bitpos="8" name="VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"/>
</enums> </enums>
<enums name="VkSwapchainImageUsageFlagBitsANDROID" type="bitmask">
<enum bitpos="0" name="VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"/>
</enums>
<enums name="VkTimeDomainEXT" type="enum"> <enums name="VkTimeDomainEXT" type="enum">
<enum value="0" name="VK_TIME_DOMAIN_DEVICE_EXT"/> <enum value="0" name="VK_TIME_DOMAIN_DEVICE_EXT"/>
<enum value="1" name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"/> <enum value="1" name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"/>
@ -5294,6 +5350,14 @@ typedef void <name>CAMetalLayer</name>;
<enum value="1" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR"/> <enum value="1" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR"/>
<enum value="2" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR"/> <enum value="2" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR"/>
</enums> </enums>
<enums name="VkLineRasterizationModeEXT" type="enum">
<enum value="0" name="VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT"/>
<enum value="1" name="VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT"/>
<enum value="2" name="VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT"/>
<enum value="3" name="VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT"/>
</enums>
<enums name="VkShaderModuleCreateFlagBits" type="bitmask">
</enums>
<commands comment="Vulkan command definitions"> <commands comment="Vulkan command definitions">
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER"> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
@ -7091,6 +7155,15 @@ typedef void <name>CAMetalLayer</name>;
<param><type>VkImageUsageFlags</type> <name>imageUsage</name></param> <param><type>VkImageUsageFlags</type> <name>imageUsage</name></param>
<param><type>int</type>* <name>grallocUsage</name></param> <param><type>int</type>* <name>grallocUsage</name></param>
</command> </command>
<command>
<proto><type>VkResult</type> <name>vkGetSwapchainGrallocUsage2ANDROID</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkFormat</type> <name>format</name></param>
<param><type>VkImageUsageFlags</type> <name>imageUsage</name></param>
<param><type>VkSwapchainImageUsageFlagsANDROID</type> <name>swapchainImageUsage</name></param>
<param><type>uint64_t</type>* <name>grallocConsumerUsage</name></param>
<param><type>uint64_t</type>* <name>grallocProducerUsage</name></param>
</command>
<command> <command>
<proto><type>VkResult</type> <name>vkAcquireImageANDROID</name></proto> <proto><type>VkResult</type> <name>vkAcquireImageANDROID</name></proto>
<param><type>VkDevice</type> <name>device</name></param> <param><type>VkDevice</type> <name>device</name></param>
@ -7585,6 +7658,12 @@ typedef void <name>CAMetalLayer</name>;
<param><type>VkPerformanceParameterTypeINTEL</type> <name>parameter</name></param> <param><type>VkPerformanceParameterTypeINTEL</type> <name>parameter</name></param>
<param><type>VkPerformanceValueINTEL</type>* <name>pValue</name></param> <param><type>VkPerformanceValueINTEL</type>* <name>pValue</name></param>
</command> </command>
<command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
<proto><type>void</type> <name>vkCmdSetLineStippleEXT</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param><type>uint32_t</type> <name>lineStippleFactor</name></param>
<param><type>uint16_t</type> <name>lineStipplePattern</name></param>
</command>
</commands> </commands>
<feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions"> <feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions">
@ -8303,14 +8382,22 @@ typedef void <name>CAMetalLayer</name>;
<extension name="VK_ANDROID_native_buffer" number="11" type="device" author="ANDROID" platform="android" contact="Jesse Hall @critsec" supported="disabled"> <extension name="VK_ANDROID_native_buffer" number="11" type="device" author="ANDROID" platform="android" contact="Jesse Hall @critsec" supported="disabled">
<require> <require>
<comment>VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It isn't exposed to applications and uses types that aren't part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers.</comment> <comment>VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It isn't exposed to applications and uses types that aren't part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers.</comment>
<enum value="5" name="VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION"/> <enum value="8" name="VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION"/>
<enum value="11" name="VK_ANDROID_NATIVE_BUFFER_NUMBER"/> <enum value="11" name="VK_ANDROID_NATIVE_BUFFER_NUMBER"/>
<enum value="&quot;VK_ANDROID_native_buffer&quot;" name="VK_ANDROID_NATIVE_BUFFER_NAME"/> <enum value="&quot;VK_ANDROID_native_buffer&quot;" name="VK_ANDROID_NATIVE_BUFFER_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID"/> <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID"/>
<type name="VkNativeBufferANDROID"/> <type name="VkNativeBufferANDROID"/>
<type name="VkSwapchainImageCreateInfoANDROID"/>
<type name="VkPhysicalDevicePresentationPropertiesANDROID"/>
<type name="VkNativeBufferUsage2ANDROID"/>
<type name="VkSwapchainImageUsageFlagBitsANDROID"/>
<type name="VkSwapchainImageUsageFlagsANDROID"/>
<command name="vkGetSwapchainGrallocUsageANDROID"/> <command name="vkGetSwapchainGrallocUsageANDROID"/>
<command name="vkAcquireImageANDROID"/> <command name="vkAcquireImageANDROID"/>
<command name="vkQueueSignalReleaseImageANDROID"/> <command name="vkQueueSignalReleaseImageANDROID"/>
<command name="vkGetSwapchainGrallocUsage2ANDROID"/>
</require> </require>
</extension> </extension>
<extension name="VK_EXT_debug_report" number="12" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan" deprecatedby="VK_EXT_debug_utils"> <extension name="VK_EXT_debug_report" number="12" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan" deprecatedby="VK_EXT_debug_utils">
@ -8661,10 +8748,12 @@ typedef void <name>CAMetalLayer</name>;
<type name="VkPhysicalDeviceCornerSampledImageFeaturesNV"/> <type name="VkPhysicalDeviceCornerSampledImageFeaturesNV"/>
</require> </require>
</extension> </extension>
<extension name="VK_NVX_extension_52" number="52" author="NVX" contact="James Jones @cubanismo" supported="disabled"> <extension name="VK_NV_extension_52" number="52" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
<require> <require>
<enum value="0" name="VK_NVX_EXTENSION_52_SPEC_VERSION"/> <enum value="0" name="VK_NV_EXTENSION_52_SPEC_VERSION"/>
<enum value="&quot;VK_NVX_extension_52&quot;" name="VK_NVX_EXTENSION_52_EXTENSION_NAME"/> <enum value="&quot;VK_NV_extension_52&quot;" name="VK_NV_EXTENSION_52_EXTENSION_NAME"/>
<enum bitpos="0" extends="VkShaderModuleCreateFlagBits" name="VK_SHADER_MODULE_CREATE_RESERVED_0_BIT_NV"/>
<enum bitpos="2" extends="VkPipelineShaderStageCreateFlagBits" name="VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_2_BIT_NV"/>
</require> </require>
</extension> </extension>
<extension name="VK_NV_extension_53" number="53" author="NV" contact="Jeff Bolz @jeffbolznv" supported="disabled"> <extension name="VK_NV_extension_53" number="53" author="NV" contact="Jeff Bolz @jeffbolznv" supported="disabled">
@ -8869,10 +8958,26 @@ typedef void <name>CAMetalLayer</name>;
<enum value="&quot;VK_EXT_shader_subgroup_vote&quot;" name="VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME"/> <enum value="&quot;VK_EXT_shader_subgroup_vote&quot;" name="VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME"/>
</require> </require>
</extension> </extension>
<extension name="VK_ARM_extension_01" number="67" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled"> <extension name="VK_EXT_texture_compression_astc_hdr" number="67" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" requires="VK_KHR_get_physical_device_properties2" supported="vulkan">
<require> <require>
<enum value="0" name="VK_ARM_EXTENSION_01_SPEC_VERSION"/> <enum value="1" name="VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION"/>
<enum value="&quot;VK_ARM_extension_01&quot;" name="VK_ARM_EXTENSION_01_EXTENSION_NAME"/> <enum value="&quot;VK_EXT_texture_compression_astc_hdr&quot;" name="VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT"/>
<type name="VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT"/>
<enum extends="VkFormat" extnumber="67" offset="0" name="VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="1" name="VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="2" name="VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="3" name="VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="4" name="VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="5" name="VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="6" name="VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="7" name="VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="8" name="VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="9" name="VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="10" name="VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="11" name="VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="12" name="VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT"/>
<enum extends="VkFormat" extnumber="67" offset="13" name="VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT"/>
</require> </require>
</extension> </extension>
<extension name="VK_EXT_astc_decode_mode" number="68" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" requires="VK_KHR_get_physical_device_properties2" supported="vulkan"> <extension name="VK_EXT_astc_decode_mode" number="68" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" requires="VK_KHR_get_physical_device_properties2" supported="vulkan">
@ -10500,7 +10605,7 @@ typedef void <name>CAMetalLayer</name>;
</extension> </extension>
<extension name="VK_KHR_shader_float_controls" number="198" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan"> <extension name="VK_KHR_shader_float_controls" number="198" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan">
<require> <require>
<enum value="2" name="VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION"/> <enum value="4" name="VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_shader_float_controls&quot;" name="VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME"/> <enum value="&quot;VK_KHR_shader_float_controls&quot;" name="VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR"/> <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR"/>
<type name="VkPhysicalDeviceFloatControlsPropertiesKHR"/> <type name="VkPhysicalDeviceFloatControlsPropertiesKHR"/>
@ -11058,10 +11163,19 @@ typedef void <name>CAMetalLayer</name>;
<enum value="&quot;VK_EXT_extension_259&quot;" name="VK_EXT_EXTENSION_259_EXTENSION_NAME"/> <enum value="&quot;VK_EXT_extension_259&quot;" name="VK_EXT_EXTENSION_259_EXTENSION_NAME"/>
</require> </require>
</extension> </extension>
<extension name="VK_EXT_extension_260" number="260" author="EXT" contact="Allen Jensen @allenjensen" supported="disabled"> <extension name="VK_EXT_line_rasterization" number="260" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
<require> <require>
<enum value="0" name="VK_EXT_EXTENSION_260_SPEC_VERSION"/> <enum value="1" name="VK_EXT_LINE_RASTERIZATION_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_260&quot;" name="VK_EXT_extension_260"/> <enum value="&quot;VK_EXT_line_rasterization&quot;" name="VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"/>
<enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_LINE_STIPPLE_EXT"/>
<type name="VkPhysicalDeviceLineRasterizationFeaturesEXT"/>
<type name="VkPhysicalDeviceLineRasterizationPropertiesEXT"/>
<type name="VkPipelineRasterizationLineStateCreateInfoEXT"/>
<type name="VkLineRasterizationModeEXT"/>
<command name="vkCmdSetLineStippleEXT"/>
</require> </require>
</extension> </extension>
<extension name="VK_NV_extension_261" number="261" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="disabled"> <extension name="VK_NV_extension_261" number="261" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="disabled">
@ -11097,10 +11211,13 @@ typedef void <name>CAMetalLayer</name>;
<enum value="&quot;VK_BRCM_extension_265&quot;" name="VK_BRCM_EXTENSION_265_EXTENSION_NAME"/> <enum value="&quot;VK_BRCM_extension_265&quot;" name="VK_BRCM_EXTENSION_265_EXTENSION_NAME"/>
</require> </require>
</extension> </extension>
<extension name="VK_EXT_extension_266" number="266" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled"> <extension name="VK_EXT_index_type_uint8" number="266" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
<require> <require>
<enum value="0" name="VK_EXT_EXTENSION_266_SPEC_VERSION"/> <enum value="1" name="VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_266&quot;" name="VK_EXT_extension_266"/> <enum value="&quot;VK_EXT_index_type_uint8&quot;" name="VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"/>
<enum offset="0" extends="VkIndexType" name="VK_INDEX_TYPE_UINT8_EXT"/>
<type name="VkPhysicalDeviceIndexTypeUint8FeaturesEXT"/>
</require> </require>
</extension> </extension>
<extension name="VK_EXT_extension_267" number="267" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled"> <extension name="VK_EXT_extension_267" number="267" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled">
@ -11208,7 +11325,8 @@ typedef void <name>CAMetalLayer</name>;
<extension name="VK_QCOM_extension_283" number="283" type="device" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled"> <extension name="VK_QCOM_extension_283" number="283" type="device" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled">
<require> <require>
<enum value="0" name="VK_QCOM_EXTENSION_283_SPEC_VERSION"/> <enum value="0" name="VK_QCOM_EXTENSION_283_SPEC_VERSION"/>
<enum value="&quot;VK_QCOM_extension_283&quot;" name="VK_QCOM_extension_283"/> <enum value="&quot;VK_QCOM_extension_283&quot;" name="VK_QCOM_extension_283"/>
<enum bitpos="1" extends="VkRenderPassCreateFlagBits" name="VK_RENDER_PASS_RESERVED_BIT_1_QCOM"/>
</require> </require>
</extension> </extension>
<extension name="VK_EXT_extension_284" number="284" type="device" author="EXT" contact="Samuel Pitoiset @hakzsam" supported="disabled"> <extension name="VK_EXT_extension_284" number="284" type="device" author="EXT" contact="Samuel Pitoiset @hakzsam" supported="disabled">
@ -11223,7 +11341,7 @@ typedef void <name>CAMetalLayer</name>;
<enum value="&quot;VK_EXT_extension_285&quot;" name="VK_EXT_extension_285"/> <enum value="&quot;VK_EXT_extension_285&quot;" name="VK_EXT_extension_285"/>
</require> </require>
</extension> </extension>
<extension name="VK_EXT_extension_286" number="286" type="instance" author="EXT" contact="Drew DeVault <sir@cmpwn.com>" supported="disabled"> <extension name="VK_EXT_extension_286" number="286" type="instance" author="EXT" contact="Drew DeVault sir@cmpwn.com" supported="disabled">
<require> <require>
<enum value="0" name="VK_EXT_EXTENSION_286_SPEC_VERSION"/> <enum value="0" name="VK_EXT_EXTENSION_286_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_286&quot;" name="VK_EXT_extension_286"/> <enum value="&quot;VK_EXT_extension_286&quot;" name="VK_EXT_extension_286"/>