mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-25 12:35:11 +00:00
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:
parent
355950cc0d
commit
0e3ceb7574
@ -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!
|
||||||
|
2
Makefile
2
Makefile
@ -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
|
||||||
|
52
appendices/VK_EXT_index_type_uint8.txt
Normal file
52
appendices/VK_EXT_index_type_uint8.txt
Normal 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
|
55
appendices/VK_EXT_line_rasterization.txt
Normal file
55
appendices/VK_EXT_line_rasterization.txt
Normal 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
|
87
appendices/VK_EXT_texture_compression_astc_hdr.txt
Normal file
87
appendices/VK_EXT_texture_compression_astc_hdr.txt
Normal 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
|
||||||
|
|
@ -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)
|
||||||
|
@ -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[]
|
||||||
|
@ -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[]
|
||||||
|
@ -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[]
|
||||||
|
@ -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
|
||||||
|
@ -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
123
chapters/features.txt
Normal file → Executable 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
|
||||||
|
@ -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 +
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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::
|
||||||
|
@ -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[]
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
488
images/bresenham.svg
Normal 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 |
@ -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
|
||||||
|
158
xml/vk.xml
158
xml/vk.xml
@ -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=""VK_ANDROID_native_buffer"" name="VK_ANDROID_NATIVE_BUFFER_NAME"/>
|
<enum value=""VK_ANDROID_native_buffer"" 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=""VK_NVX_extension_52"" name="VK_NVX_EXTENSION_52_EXTENSION_NAME"/>
|
<enum value=""VK_NV_extension_52"" 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=""VK_EXT_shader_subgroup_vote"" name="VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME"/>
|
<enum value=""VK_EXT_shader_subgroup_vote"" 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=""VK_ARM_extension_01"" name="VK_ARM_EXTENSION_01_EXTENSION_NAME"/>
|
<enum value=""VK_EXT_texture_compression_astc_hdr"" 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=""VK_KHR_shader_float_controls"" name="VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME"/>
|
<enum value=""VK_KHR_shader_float_controls"" 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=""VK_EXT_extension_259"" name="VK_EXT_EXTENSION_259_EXTENSION_NAME"/>
|
<enum value=""VK_EXT_extension_259"" 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=""VK_EXT_extension_260"" name="VK_EXT_extension_260"/>
|
<enum value=""VK_EXT_line_rasterization"" 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=""VK_BRCM_extension_265"" name="VK_BRCM_EXTENSION_265_EXTENSION_NAME"/>
|
<enum value=""VK_BRCM_extension_265"" 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=""VK_EXT_extension_266"" name="VK_EXT_extension_266"/>
|
<enum value=""VK_EXT_index_type_uint8"" 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">
|
||||||
@ -11209,6 +11326,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||||||
<require>
|
<require>
|
||||||
<enum value="0" name="VK_QCOM_EXTENSION_283_SPEC_VERSION"/>
|
<enum value="0" name="VK_QCOM_EXTENSION_283_SPEC_VERSION"/>
|
||||||
<enum value=""VK_QCOM_extension_283"" name="VK_QCOM_extension_283"/>
|
<enum value=""VK_QCOM_extension_283"" 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=""VK_EXT_extension_285"" name="VK_EXT_extension_285"/>
|
<enum value=""VK_EXT_extension_285"" 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=""VK_EXT_extension_286"" name="VK_EXT_extension_286"/>
|
<enum value=""VK_EXT_extension_286"" name="VK_EXT_extension_286"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user