Change log for August 1, 2017 Vulkan 1.0.57 spec update:

* Bump API patch number and header version number to 57 for this update.

Github Issues:

  * Fix error in description of ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
    block size (public issue 342).
  * Update documentation of ename:VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
    to explicitly mention both graphics and compute pipelines (public issue
    525).

Internal Issues:

  * Document that
    slink:VkPhysicalDeviceLimits::pname:framebufferColorSampleCounts does
    not cover integer formats (internal issue 550).
  * Add a note under slink:VkImageViewCreateInfo describing how values meant
    for one format can be sanitized when used via another format (internal
    issue 927).
  * Add valid usage statements to ftext:vkCmd* documenting that image
    subresources used as attachments must not be accessed as non-attachments
    in a render pass (internal issue 929).
  * Remove obsolete 'validextensionstructs' attribute from +vk.xml+, the XML
    schema, and the schema documentation (internal issue 946).

New Extensions:

  * `VK_AMD_mixed_attachment_samples`
  * `VK_EXT_post_depth_coverage`
  * `VK_KHR_relaxed_block_layout`
  * `VK_NV_depth_range_unrestricted`
This commit is contained in:
Jon Leech 2017-07-31 17:22:11 -07:00
parent 80af5ce5a2
commit c8c0862dee
25 changed files with 584 additions and 141 deletions

View File

@ -8,6 +8,74 @@ public issues.
-----------------------------------------------------
Change log for August 1, 2017 Vulkan 1.0.57 spec update:
* Bump API patch number and header version number to 57 for this update.
Github Issues:
* Fix error in description of ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
block size (public issue 342).
* Update documentation of ename:VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
to explicitly mention both graphics and compute pipelines (public issue
525).
Internal Issues:
* Document that
slink:VkPhysicalDeviceLimits::pname:framebufferColorSampleCounts does
not cover integer formats (internal issue 550).
* Add a note under slink:VkImageViewCreateInfo describing how values meant
for one format can be sanitized when used via another format (internal
issue 927).
* Add valid usage statements to ftext:vkCmd* documenting that image
subresources used as attachments must not be accessed as non-attachments
in a render pass (internal issue 929).
* Remove obsolete 'validextensionstructs' attribute from +vk.xml+, the XML
schema, and the schema documentation (internal issue 946).
New Extensions:
* `VK_AMD_mixed_attachment_samples`
* `VK_EXT_post_depth_coverage`
* `VK_KHR_relaxed_block_layout`
* `VK_NV_depth_range_unrestricted`
-----------------------------------------------------
Change log for July 21, 2017 Vulkan 1.0.56 spec update:
* Bump API patch number and header version number to 56 for this update.
Github Issues:
* Add valid usage statements for commands introduced by
`VK_EXT_debug_report` and `VK_EXT_debug_marker` extensions, regarding
the valid pname:object and pname:objectType values (public issue 495).
* Modify `GL_KHR_vulkan_glsl` specification to document that uniform and
buffer block arrays each take only a single binding (public issue 514).
* Add `KHX` author tag to +vk.xml+ (public issue 526).
Internal Issues:
* Document use of code: macro for non-Vulkan APIs in the style guide
(internal issue 863).
* Document that reference page open block delimiters must not contain
asciidoc section markup in the style guide (internal issue 898).
* Fix <<spirvenv,SPIR-V appendix>> to say
code:VariablePointersStorageBuffer instead of
code:VariablePointersUniformBufferBlock (internal issue 928).
Other Commits:
* Add missing extension structures to dependency attributes in +vk.xml+.
New Extenions:
* `VK_EXT_depth_range_unrestricted`
-----------------------------------------------------
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.

View File

@ -87,7 +87,7 @@ VERBOSE =
# $(EXTENSIONS))
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
SPECREVISION = 1.0.56
SPECREVISION = 1.0.57
# Spell out RFC2822 format as not all date commands support -R
SPECDATE = $(shell echo `date -u "+%a, %d %b %Y %T %z"`)

View File

@ -0,0 +1,64 @@
[[VK_AMD_mixed_attachment_samples]]
== VK_AMD_mixed_attachment_samples
*Name String*::
+VK_AMD_mixed_attachment_samples+
*Extension Type*::
Device extension
*Registered Extension Number*::
137
*Status*::
Complete
*Last Modified Date*::
2017-07-24
*Revision*::
1
*Dependencies*::
- This extension is written against version 1.0 of the Vulkan API.
*Contributors*::
- Mais Alnasser, AMD
- Matthaeus G.
Chajdas, AMD
- Maciej Jesionowski, AMD
- Daniel Rakos, AMD
*Contacts*::
- Matthaeus G.
Chajdas (matthaeus.chajdas@amd.com)
*Overview*::
This extension enables applications to use multisampled rendering with a
depth/stencil sample count that is larger than the color sample count.
Having a depth/stencil sample count larger than the color sample count
allows maintaining geometry and coverage information at a higher sample rate
than color information.
All samples are depth/stencil tested, but only the first color sample count
number of samples get a corresponding color output.
=== New Object Types
None.
=== New Enum Constants
None.
=== New Enums
None.
=== New Structures
None.
=== New Functions
None.
=== Issues
None.
=== Version History
* Revision 1, 2017-07-24 (Daniel Rakos)
- Internal revisions

View File

@ -0,0 +1,92 @@
[[VK_EXT_post_depth_coverage]]
== VK_EXT_post_depth_coverage
*Name String*::
VK_EXT_post_depth_coverage
*Extension Type*::
Device extension
*Registered Extension Number*::
156
*Status*::
Complete
*Last Modified Data*::
2017-07-17
*Revision*::
1
*Dependencies*::
- This extension is written against version 1.0 of the Vulkan API.
- This extension requires Vulkan 1.0.
- This extension requires the
https://www.khronos.org/registry/spir-v/extensions/KHR/SPV_KHR_post_depth_coverage.html[+SPV_KHR_post_depth_coverage+]
SPIR-V extension.
- This extension requires
https://www.opengl.org/registry/specs/ARB/post_depth_coverage.txt[+GL_ARB_post_depth_coverage+]
or
https://www.opengl.org/registry/specs/EXT/post_depth_coverage.txt[+GL_EXT_post_depth_coverage+]
for GLSL-based source languages.
*Contributors*::
- Jeff Bolz, NVIDIA
*Contact*::
- Daniel Koch (dkoch 'at' nvidia.com)
This extension adds support for the following SPIR-V extension in Vulkan:
* SPV_KHR_post_depth_coverage
which allows the fragment shader to control whether values in the
code:SampleMask built-in input variable reflect the coverage after the
<<fragops-early,early per-fragment>> depth and stencil tests are applied.
This extension adds a new code:PostDepthCoverage execution mode under the
code:SampleMaskPostDepthCoverage capability.
When this mode is specified along with code:EarlyFragmentTests, the value of
an input variable decorated with the
<<interfaces-builtin-variables-samplemask, code:SampleMask>> built-in
reflects the coverage after the <<shaders-fragment-earlytest, early fragment
tests>> are applied.
Otherwise, it reflects the coverage before the depth and stencil tests.
When using GLSL source-based shading languages, the code:post_depth_coverage
layout qualifier from GL_ARB_post_depth_coverage or
GL_EXT_post_depth_coverage maps to the code:PostDepthCoverage execution
mode.
=== New Object Types
None.
=== New Enum Constants
None.
=== New Enums
None.
=== New Structures
None.
=== New Functions
None.
=== New Built-In Variables
None.
=== New Variable Decoration
None.
=== New SPIR-V Capabilities
* <<spirvenv-capabilities-table-postdepthcoverage,SampleMaskPostDepthCoverage>>
=== Issues
None yet.
=== Version History
* Revision 1, 2017-07-17 (Daniel Koch)
- Internal revisions

View File

@ -0,0 +1,38 @@
// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
[[VK_KHR_relaxed_block_layout]]
== VK_KHR_relaxed_block_layout
*Name String*::
+VK_KHR_relaxed_block_layout+
*Extension Type*::
Device extension
*Registered Extension Number*::
145
*Status*::
Complete
*Last Modified Date*::
2017-03-26
*Revision*::
1
*IP Status*::
No known IP claims.
*Dependencies*::
- Written against version 1.0 of the Vulkan API
- Requires Vulkan 1.0
*Contributors*::
- John Kessenich, Google
*Contacts*::
- John Kessenich (johnkessenich 'at' google.com)
The +VK_KHR_relaxed_block_layout+ extension allows implementations to
indicate they can support more variation in block code:Offset decorations.
For example, placing a vector of three floats at an offset of 16*N + 4.
See <<interfaces-resources-layout,Offset and Stride Assignment>> for
details.
=== Version History
* Revision 1, 2017-03-26 (JohnK)

View File

@ -163,6 +163,10 @@ ifdef::VK_KHR_push_descriptor[]
include::VK_KHR_push_descriptor.txt[]
endif::VK_KHR_push_descriptor[]
ifdef::VK_KHR_relaxed_block_layout[]
include::VK_KHR_relaxed_block_layout.txt[]
endif::VK_KHR_relaxed_block_layout[]
include::VK_KHR_sampler_mirror_clamp_to_edge.txt[]
ifdef::VK_KHR_shader_draw_parameters[]
@ -268,6 +272,10 @@ ifdef::VK_EXT_hdr_metadata[]
include::VK_EXT_hdr_metadata.txt[]
endif::VK_EXT_hdr_metadata[]
ifdef::VK_EXT_post_depth_coverage[]
include::VK_EXT_post_depth_coverage.txt[]
endif::VK_EXT_post_depth_coverage[]
ifdef::VK_EXT_sampler_filter_minmax[]
include::VK_EXT_sampler_filter_minmax.txt[]
endif::VK_EXT_sampler_filter_minmax[]
@ -311,6 +319,10 @@ ifdef::VK_AMD_gpu_shader_int16[]
include::VK_AMD_gpu_shader_int16.txt[]
endif::VK_AMD_gpu_shader_int16[]
ifdef::VK_AMD_mixed_attachment_samples[]
include::VK_AMD_mixed_attachment_samples.txt[]
endif::VK_AMD_mixed_attachment_samples[]
ifdef::VK_AMD_negative_viewport_height[]
include::VK_AMD_negative_viewport_height.txt[]
endif::VK_AMD_negative_viewport_height[]

View File

@ -130,6 +130,10 @@ ifdef::VK_KHR_16bit_storage[]
| code:StoragePushConstant16 | <<features-features-storagePushConstant16,storagePushConstant16>>
| code:StorageInputOutput16 | <<features-features-storageInputOutput16,storageInputOutput16>>
endif::VK_KHR_16bit_storage[]
ifdef::VK_EXT_post_depth_coverage[]
[[spirvenv-capabilities-table-postdepthcoverage]]
| code:SampleMaskPostDepthCoverage | <<VK_EXT_post_depth_coverage,VK_EXT_post_depth_coverage>>
endif::VK_EXT_post_depth_coverage[]
|====
ifdef::VK_KHR_variable_pointers[]
@ -191,6 +195,11 @@ https://gitlab.khronos.org/spirv/spirv-extensions/blob/master/SPV_KHR_storage_bu
SPIR-V extension.
endif::VK_KHR_storage_buffer_storage_class[]
ifdef::VK_EXT_post_depth_coverage[]
The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
uses the +SPV_KHR_post_depth_coverage+ SPIR-V extension.
endif::VK_EXT_post_depth_coverage[]
ifdef::VK_EXT_shader_subgroup_ballot[]
The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
uses the +SPV_KHR_shader_ballot+ SPIR-V extension.

View File

@ -626,6 +626,9 @@ The assembled primitives execute the currently bound graphics pipeline.
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDraw-None-01499]]
Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command.
ifdef::VK_IMG_filter_cubic[]
* [[VUID-vkCmdDraw-linearTilingFeatures-00451]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
@ -794,6 +797,9 @@ The assembled primitives execute the currently bound graphics pipeline.
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndexed-None-01500]]
Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command.
ifdef::VK_IMG_filter_cubic[]
* [[VUID-vkCmdDrawIndexed-linearTilingFeatures-00471]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
@ -968,6 +974,9 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndirect-None-01501]]
Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command.
ifdef::VK_IMG_filter_cubic[]
* [[VUID-vkCmdDrawIndirect-linearTilingFeatures-00497]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
@ -1178,6 +1187,9 @@ located at pname:countBufferOffset and use this as the draw count.
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndirectCountAMD-None-01502]]
Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command.
ifdef::VK_KHX_multiview[]
* [[VUID-vkCmdDrawIndirectCountAMD-maxMultiviewInstanceIndex-00525]]
If the draw is recorded in a render pass instance with multiview
@ -1339,6 +1351,9 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndexedIndirect-None-01503]]
Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command.
ifdef::VK_IMG_filter_cubic[]
* [[VUID-vkCmdDrawIndexedIndirect-linearTilingFeatures-00549]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
@ -1558,6 +1573,9 @@ located at pname:countBufferOffset and use this as the draw count.
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndexedIndirectCountAMD-None-01504]]
Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command.
ifdef::VK_KHX_multiview[]
* [[VUID-vkCmdDrawIndexedIndirectCountAMD-maxMultiviewInstanceIndex-00578]]
If the draw is recorded in a render pass instance with multiview

View File

@ -1431,7 +1431,10 @@ range.
* [[features-limits-framebufferColorSampleCounts]]
pname:framebufferColorSampleCounts is a bitmask^1^ of
elink:VkSampleCountFlagBits indicating the color sample counts that are
supported for all framebuffer color attachments.
supported for all framebuffer color attachments with floating- or
fixed-point formats.
There is no limit that indicates the color sample counts that are
supported for all color attachments with integer formats.
* [[features-limits-framebufferDepthSampleCounts]]
pname:framebufferDepthSampleCounts is a bitmask^1^ of
elink:VkSampleCountFlagBits indicating the supported depth sample counts
@ -2724,7 +2727,7 @@ include::../api/enums/VkFormat.txt[]
first 64 bits encoding alpha values followed by 64 bits encoding RGB
values.
* ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK specifies a four-component,
ETC2 compressed format where each 64-bit compressed texel block encodes
ETC2 compressed format where each 128-bit compressed texel block encodes
a 4{times}4 rectangle of unsigned normalized RGBA texel data with the
first 64 bits encoding alpha values followed by 64 bits encoding RGB
values with sRGB nonlinear encoding applied.
@ -4459,8 +4462,8 @@ supported for the specified values of pname:usage and pname:format.
For each bit set in pname:usage, the supported sample counts relate to the
limits in sname:VkPhysicalDeviceLimits as follows:
* If pname:usage includes ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, a
superset of
* If pname:usage includes ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT and
pname:format is a floating- or fixed-point color format, a superset of
sname:VkPhysicalDeviceLimits::pname:framebufferColorSampleCounts
* If pname:usage includes
ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and pname:format

View File

@ -41,6 +41,12 @@ the fragment shader>>, these operations are also performed:
* <<fragops-samplecount, Sample counting>> for <<queries-occlusion,
occlusion queries>>
ifdef::VK_EXT_post_depth_coverage[]
If post-depth coverage operation is
<<shaders-fragment-earlytest-postdepthcoverage,enabled by the fragment
shader>>, the <<interfaces-builtin-variables-samplemask,code:SampleMask>>
coverage is determined after the early stencil and depth tests.
endif::VK_EXT_post_depth_coverage[]
ifdef::VK_EXT_discard_rectangles[]
[[fragops-discard-rectangles]]
@ -381,6 +387,31 @@ fragment processing, as described in <<fragops-early-mode,Early Fragment
Test Mode>>, if requested by the fragment shader.
ifdef::VK_AMD_mixed_attachment_samples[]
[[fragops-mixed-attachment-samples]]
== Mixed attachment samples
Special rules apply to per-fragment operations when the number of samples of
the color attachments differs from the number of samples of the
depth/stencil attachment used in a subpass.
Let [eq]#C# be the number of color attachment samples and [eq]#D# be the
number of depth/stencil attachment samples used by a given subpass.
If [eq]#C < D# then only the first [eq]#C# number of samples are guaranteed
to have a corresponding fragment shader invocation and thus a corresponding
color output value, unless the fragment shaders produce inputs to the late
per-fragment tests (e.g. by outputting to a variable decorated with the
code:FragDepth built-in decoration).
Implementations are allowed to produce fragment shader invocations for
samples with indices greater than or equal to [eq]#C# but (other than
potential side effects) the color outputs of fragment shader invocations
corresponding to such samples are discarded.
endif::VK_AMD_mixed_attachment_samples[]
[[fragops-covg]]
== Multisample Coverage

View File

@ -739,25 +739,57 @@ resources.
[[interfaces-resources-layout-std140]]
*Standard Uniform Buffer Layout*
Member variables of an code:OpTypeStruct with storage class of code:Uniform
and a decoration of code:Block (uniform buffers) must: be laid out according
to the following rules.
The 'base alignment' of the type of an code:OpTypeStruct member of is
defined recursively as follows:
* A scalar of size [eq]#N# has a base alignment of [eq]#N#.
* A two-component vector, with components of size [eq]#N#, has a base
alignment of [eq]#2 N#.
* A three- or four-component vector, with components of size [eq]#N#, has
a base alignment of [eq]#4 N#.
* An array has a base alignment equal to the base alignment of its element
type, rounded up to a multiple of [eq]#16#.
* A structure has a base alignment equal to the largest base alignment of
any of its members, rounded up to a multiple of [eq]#16#.
* A row-major matrix of [eq]#C# columns has a base alignment equal to the
base alignment of a vector of [eq]#C# matrix components.
* A column-major matrix has a base alignment equal to the base alignment
of the matrix column type.
ifdef::VK_KHR_relaxed_block_layout[]
A member is defined to 'improperly straddle' if either of the following are
true:
* It is a vector with total size less than or equal to 16 bytes, and has
code:Offset decorations placing its first byte at [eq]#F# and its last
byte at [eq]#L#, where [eq]#floor(F / 16) != floor(L / 16)#.
* It is a vector with total size greater than 16 bytes and has its
code:Offset decorations placing its first byte at a non-integer multiple
of 16.
endif::VK_KHR_relaxed_block_layout[]
Every member of an code:OpTypeStruct with storage class of code:Uniform and
a decoration of code:Block (uniform buffers) must: be laid out according to
the following rules:
ifndef::VK_KHR_relaxed_block_layout[]
* The code:Offset decoration must: be a multiple of its base alignment.
endif::VK_KHR_relaxed_block_layout[]
ifdef::VK_KHR_relaxed_block_layout[]
* The code:Offset decoration of a scalar, an array, a structure, or a
matrix must: be a multiple of its base alignment.
* The code:Offset decoration of a vector must: be an integer multiple of
the base alignment of its scalar component type, and must: not
improperly straddle, as defined above.
endif::VK_KHR_relaxed_block_layout[]
* The code:Offset decoration must: be a multiple of its base alignment,
computed recursively as follows:
** a scalar of size [eq]#N# has a base alignment of [eq]#N#
** a two-component vector, with components of size [eq]#N#, has a base
alignment of [eq]#2 N#
** a three- or four-component vector, with components of size [eq]#N#, has
a base alignment of [eq]#4 N#
** an array has a base alignment equal to the base alignment of its
element type, rounded up to a multiple of [eq]#16#
** a structure has a base alignment equal to the largest base alignment of
any of its members, rounded up to a multiple of [eq]#16#
** a row-major matrix of [eq]#C# columns has a base alignment equal to the
base alignment of vector of [eq]#C# matrix components
** a column-major matrix has a base alignment equal to the base alignment
of the matrix column type
* Any code:ArrayStride or code:MatrixStride decoration must: be an integer
multiple of the base alignment of the array or matrix from above.
* The code:Offset decoration of a member must: not place it between the
@ -1535,6 +1567,17 @@ specifies the subset of the covered samples for the fragment that correspond
to the invocation.
In this case, the bit corresponding to each covered sample will be set in
exactly one fragment shader invocation.
ifdef::VK_EXT_post_depth_coverage[]
+
If the
<<shaders-fragment-earlytest-postdepthcoverage,code:PostDepthCoverage>>
execution mode is specified, the sample is considered covered if and only if
the sample is covered by the primitive and the sample passes the
<<fragops-early,early per-fragment tests>>.
Otherwise the sample is considered covered if the sample is covered by the
primitive, regardless of the result of the fragment tests.
endif::VK_EXT_post_depth_coverage[]
+
A variable in the code:Output storage class decorated with code:SampleMask
is an array of integers forming a bit array in a manner similar an input

View File

@ -648,12 +648,20 @@ endif::VK_EXT_depth_range_unrestricted[]
pname:layout must: be
<<descriptorsets-pipelinelayout-consistency,consistent>> with all
shaders specified in pname:pStages
ifndef::VK_AMD_mixed_attachment_samples[]
ifndef::VK_NV_framebuffer_mixed_samples[]
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-00757]]
If pname:subpass uses color and/or depth/stencil attachments, then the
pname:rasterizationSamples member of pname:pMultisampleState must: be
the same as the sample count for those subpass attachments
endif::VK_NV_framebuffer_mixed_samples[]
endif::VK_AMD_mixed_attachment_samples[]
ifdef::VK_AMD_mixed_attachment_samples[]
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-01505]]
If pname:subpass uses color and/or depth/stencil attachments, then the
pname:rasterizationSamples member of pname:pMultisampleState must: equal
the maximum of the sample counts of those subpass attachments
endif::VK_AMD_mixed_attachment_samples[]
ifdef::VK_NV_framebuffer_mixed_samples[]
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-01411]]
If pname:subpass has a depth/stencil attachment and depth test, stencil
@ -715,7 +723,8 @@ include::../api/enums/VkPipelineCreateFlagBits.txt[]
Using this flag may: reduce the time taken to create the pipeline.
* ename:VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT specifies that the
pipeline to be created is allowed to be the parent of a pipeline that
will be created in a subsequent call to flink:vkCreateGraphicsPipelines.
will be created in a subsequent call to flink:vkCreateGraphicsPipelines
or flink:vkCreateComputePipelines.
* ename:VK_PIPELINE_CREATE_DERIVATIVE_BIT specifies that the pipeline to
be created will be a child of a previously created parent pipeline.
ifdef::VK_KHX_device_group[]

View File

@ -163,6 +163,7 @@ Surviving fragments are processed by fragment shaders.
Fragment shaders determine associated data for fragments, and can: also
modify or replace their assigned depth values.
ifndef::VK_AMD_mixed_attachment_samples[]
ifndef::VK_NV_framebuffer_mixed_samples[]
If the subpass for which this pipeline is being created uses color and/or
@ -170,6 +171,15 @@ depth/stencil attachments, then pname:rasterizationSamples must: be the same
as the sample count for those subpass attachments.
endif::VK_NV_framebuffer_mixed_samples[]
endif::VK_AMD_mixed_attachment_samples[]
ifdef::VK_AMD_mixed_attachment_samples[]
If the subpass for which this pipeline is being created uses color and/or
depth/stencil attachments, then pname:rasterizationSamples must: be the same
as the maximum of the sample counts of those subpass attachments.
endif::VK_AMD_mixed_attachment_samples[]
If the subpass for which this pipeline is being created does not use color
or depth/stencil attachments, pname:rasterizationSamples must: follow the
@ -382,11 +392,22 @@ Sample shading is controlled by the pname:sampleShadingEnable member of
slink:VkPipelineMultisampleStateCreateInfo.
If pname:sampleShadingEnable is ename:VK_FALSE, sample shading is considered
disabled and has no effect.
ifndef::VK_AMD_mixed_attachment_samples[]
Otherwise, an implementation must: provide a minimum of [eq]#max({lceil}
pname:minSampleShading {times} pname:rasterizationSamples {rceil}, 1)#
unique associated data for each fragment, where pname:minSampleShading is
the minimum fraction of sample shading and pname:rasterizationSamples is the
number of samples requested in slink:VkPipelineMultisampleStateCreateInfo.
endif::VK_AMD_mixed_attachment_samples[]
ifdef::VK_AMD_mixed_attachment_samples[]
Otherwise, an implementation must: provide a minimum of [eq]#max({lceil}
pname:minSampleShading {times} pname:samples {rceil}, 1)# unique associated
data for each fragment, where pname:minSampleShading is the minimum fraction
of sample shading and pname:samples is the number of samples of the color
attachments used in the subpass or the value of
slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples if
the subpass does not use any color attachments.
endif::VK_AMD_mixed_attachment_samples[]
These are associated with the samples in an implementation-dependent manner.
When the sample shading fraction is 1.0, a separate set of associated data
are evaluated for each sample, and each set of values is evaluated at the

View File

@ -714,12 +714,21 @@ attachment.
* [[VUID-VkSubpassDescription-pColorAttachments-01417]]
All attachments in pname:pColorAttachments that are not
ename:VK_ATTACHMENT_UNUSED must: have the same sample count
ifdef::VK_AMD_mixed_attachment_samples[]
* [[VUID-VkSubpassDescription-pColorAttachments-01506]]
All attachments in pname:pColorAttachments that are not
ename:VK_ATTACHMENT_UNUSED must: have a sample count that is smaller
than or equal to the sample count of pname:pDepthStencilAttachment if it
is not ename:VK_ATTACHMENT_UNUSED
endif::VK_AMD_mixed_attachment_samples[]
ifndef::VK_AMD_mixed_attachment_samples[]
ifndef::VK_NV_framebuffer_mixed_samples[]
* [[VUID-VkSubpassDescription-pDepthStencilAttachment-01418]]
If pname:pDepthStencilAttachment is not ename:VK_ATTACHMENT_UNUSED and
any attachments in pname:pColorAttachments are not
ename:VK_ATTACHMENT_UNUSED, they must: have the same sample count
endif::VK_NV_framebuffer_mixed_samples[]
endif::VK_AMD_mixed_attachment_samples[]
* [[VUID-VkSubpassDescription-None-00852]]
If any input attachments are ename:VK_ATTACHMENT_UNUSED, then any
pipelines bound during the subpass must: not access those input
@ -1282,8 +1291,8 @@ ifdef::VK_KHX_multiview[]
used.
endif::VK_KHX_multiview[]
Image subresources used as attachments must: not be used via any
non-attachment usage for the duration of a render pass instance.
Image subresources used as attachments must: not be accessed in any other
way for the duration of a render pass instance.
[NOTE]
.Note

View File

@ -1415,7 +1415,7 @@ The type(s) of device access supported by each layout are:
This layout is valid only for image subresources of images created with
the ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bit enabled.
Only image subresources of images created with
ename:VK_IMAGE_USAGE_SAMPLED_BIT can: be used as sampled image or
ename:VK_IMAGE_USAGE_SAMPLED_BIT can: be used as a sampled image or
combined image/sampler in a shader.
Similarly, only image subresources of images created with
ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT can: be used as input
@ -1561,6 +1561,20 @@ Views of compatible formats will have the same mapping between texel
coordinates and memory locations irrespective of the pname:format, with only
the interpretation of the bit pattern changing.
[NOTE]
.Note
====
Values intended to be used with one view format may: not be exactly
preserved when written or read through a different format.
For example, an integer value that happens to have the bit pattern of a
floating point denorm or NaN may: be flushed or canonicalized when written
or read through a view with a floating point format.
Similarly, a value written through a signed normalized format that has a bit
pattern exactly equal to [eq]#-2^b^# may: be changed to [eq]#-2^b^ {plus} 1#
as described in <<fundamentals-fixedfpconv,Conversion from Normalized
Fixed-Point to Floating-Point>>.
====
[[resources-image-views-compatibility]]
.Image and image view parameter compatibility requirements
[cols="15%h,35%,50%",options="header"]
@ -2598,17 +2612,17 @@ include::../api/structs/VkBindBufferMemoryInfoKHX.txt[]
* pname:pDeviceIndices is a pointer to an array of device indices.
If pname:deviceIndexCount is greater than zero, then on device index [eq]#i#
the buffer is attached to the instance of memory on the physical device with
device index [eq]#pDeviceIndices[i]#.
the buffer is attached to the instance of pname:memory on the physical
device with device index [eq]#pDeviceIndices[i]#.
If pname:deviceIndexCount is zero and the memory comes from a memory heap
If pname:deviceIndexCount is zero and pname:memory comes from a memory heap
with the ename:VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX bit set, then it is as
if pname:pDeviceIndices contains consecutive indices from zero to the number
of physical devices in the logical device, minus one.
In other words, by default each physical device attaches to its own instance
of the memory.
of pname:memory.
If pname:deviceIndexCount is zero and the memory comes from a memory heap
If pname:deviceIndexCount is zero and pname:memory comes from a memory heap
without the ename:VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX bit set, then it is
as if pname:pDeviceIndices contains an array of zeros.
In other words, by default each physical device attaches to instance zero.
@ -2759,8 +2773,8 @@ include::../api/structs/VkBindImageMemoryInfoKHX.txt[]
regions of the image are attached to each instance of memory.
If pname:deviceIndexCount is greater than zero, then on device index [eq]#i#
the image is attached to the instance of memory on the physical device with
device index [eq]#pDeviceIndices[i]#.
pname:image is attached to the instance of the memory on the physical device
with device index [eq]#pDeviceIndices[i]#.
Let [eq]#N# be the number of physical devices in the logical device.
If pname:SFRRectCount is greater than zero, then pname:pSFRRects is an array
@ -2772,7 +2786,7 @@ offset in memory, relative to pname:memoryOffset, computed as if the whole
image were being bound to a contiguous range of memory.
In other words, horizontally adjacent image blocks use consecutive blocks of
memory, vertically adjacent image blocks are separated by the number of
bytes per block multiplied by the width in blocks of the image, and the
bytes per block multiplied by the width in blocks of pname:image, and the
block at [eq]#(0,0)# corresponds to memory starting at pname:memoryOffset.
If pname:SFRRectCount and pname:deviceIndexCount are zero and the memory

View File

@ -521,6 +521,14 @@ code:OpExecutionMode, the per-fragment tests described in
fragment shader execution.
Otherwise, they are performed after fragment shader execution.
ifdef::VK_EXT_post_depth_coverage[]
[[shaders-fragment-earlytest-postdepthcoverage]]
If the fragment shader additionally specifies the code:PostDepthCoverage
code:OpExecutionMode, the value of a variable decorated with the
<<interfaces-builtin-variables-samplemask,code:SampleMask>> built-in
reflects the coverage after the early fragment tests.
Otherwise, it reflects the coverage before the early fragment tests.
endif::VK_EXT_post_depth_coverage[]
[[shaders-compute]]
== Compute Shaders
@ -593,6 +601,10 @@ in neighboring pixels, and derivatives may: be computed by computing
differences between neighboring pixels, derivatives of centroid-sampled
inputs may: be less accurate than those for non-centroid interpolated
variables.
ifdef::VK_EXT_post_depth_coverage[]
The <<shaders-fragment-earlytest-postdepthcoverage,code:PostDepthCoverage>>
execution mode does not affect the determination of the centroid location.
endif::VK_EXT_post_depth_coverage[]
If a fragment shader input is decorated with code:Sample, a separate value
must: be assigned to that variable for each covered sample in the pixel, and
that value must: be sampled at the location of the individual sample.

View File

@ -51,6 +51,6 @@ extensions['VK_NV_external_memory_win32'] = [ 'VK_NV_external_memory', 'VK_NV_ex
extensions['VK_NV_win32_keyed_mutex'] = [ 'VK_NV_external_memory', 'VK_NV_external_memory_capabilities', 'VK_NV_external_memory_win32' ]
# Define lists of all / KHR / KHX extensions
allExts = [ 'VK_AMD_draw_indirect_count', 'VK_AMD_gcn_shader', 'VK_AMD_gpu_shader_half_float', 'VK_AMD_gpu_shader_int16', 'VK_AMD_negative_viewport_height', 'VK_AMD_rasterization_order', 'VK_AMD_shader_ballot', 'VK_AMD_shader_explicit_vertex_parameter', 'VK_AMD_shader_trinary_minmax', 'VK_AMD_texture_gather_bias_lod', 'VK_EXT_acquire_xlib_display', 'VK_EXT_blend_operation_advanced', 'VK_EXT_debug_marker', 'VK_EXT_debug_report', 'VK_EXT_depth_range_unrestricted', 'VK_EXT_direct_mode_display', 'VK_EXT_discard_rectangles', 'VK_EXT_display_control', 'VK_EXT_display_surface_counter', 'VK_EXT_hdr_metadata', 'VK_EXT_sampler_filter_minmax', 'VK_EXT_shader_subgroup_ballot', 'VK_EXT_shader_subgroup_vote', 'VK_EXT_swapchain_colorspace', 'VK_EXT_validation_flags', 'VK_GOOGLE_display_timing', 'VK_IMG_filter_cubic', 'VK_IMG_format_pvrtc', 'VK_KHR_16bit_storage', 'VK_KHR_android_surface', 'VK_KHR_dedicated_allocation', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_external_fence', 'VK_KHR_external_fence_capabilities', 'VK_KHR_external_fence_fd', 'VK_KHR_external_fence_win32', 'VK_KHR_external_memory', 'VK_KHR_external_memory_capabilities', 'VK_KHR_external_memory_fd', 'VK_KHR_external_memory_win32', 'VK_KHR_external_semaphore', 'VK_KHR_external_semaphore_capabilities', 'VK_KHR_external_semaphore_fd', 'VK_KHR_external_semaphore_win32', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_surface_capabilities2', 'VK_KHR_incremental_present', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_shared_presentable_image', 'VK_KHR_storage_buffer_storage_class', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_variable_pointers', 'VK_KHR_wayland_surface', 'VK_KHR_win32_keyed_mutex', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface', 'VK_KHX_device_group', 'VK_KHX_device_group_creation', 'VK_KHX_multiview', 'VK_MVK_ios_surface', 'VK_MVK_macos_surface', 'VK_NN_vi_surface', 'VK_NVX_device_generated_commands', 'VK_NVX_multiview_per_view_attributes', 'VK_NV_clip_space_w_scaling', 'VK_NV_dedicated_allocation', 'VK_NV_external_memory', 'VK_NV_external_memory_capabilities', 'VK_NV_external_memory_win32', 'VK_NV_fill_rectangle', 'VK_NV_fragment_coverage_to_color', 'VK_NV_framebuffer_mixed_samples', 'VK_NV_geometry_shader_passthrough', 'VK_NV_glsl_shader', 'VK_NV_sample_mask_override_coverage', 'VK_NV_viewport_array2', 'VK_NV_viewport_swizzle', 'VK_NV_win32_keyed_mutex' ]
khrExts = [ 'VK_KHR_16bit_storage', 'VK_KHR_android_surface', 'VK_KHR_dedicated_allocation', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_external_fence', 'VK_KHR_external_fence_capabilities', 'VK_KHR_external_fence_fd', 'VK_KHR_external_fence_win32', 'VK_KHR_external_memory', 'VK_KHR_external_memory_capabilities', 'VK_KHR_external_memory_fd', 'VK_KHR_external_memory_win32', 'VK_KHR_external_semaphore', 'VK_KHR_external_semaphore_capabilities', 'VK_KHR_external_semaphore_fd', 'VK_KHR_external_semaphore_win32', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_surface_capabilities2', 'VK_KHR_incremental_present', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_shared_presentable_image', 'VK_KHR_storage_buffer_storage_class', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_variable_pointers', 'VK_KHR_wayland_surface', 'VK_KHR_win32_keyed_mutex', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface' ]
allExts = [ 'VK_AMD_draw_indirect_count', 'VK_AMD_gcn_shader', 'VK_AMD_gpu_shader_half_float', 'VK_AMD_gpu_shader_int16', 'VK_AMD_mixed_attachment_samples', 'VK_AMD_negative_viewport_height', 'VK_AMD_rasterization_order', 'VK_AMD_shader_ballot', 'VK_AMD_shader_explicit_vertex_parameter', 'VK_AMD_shader_trinary_minmax', 'VK_AMD_texture_gather_bias_lod', 'VK_EXT_acquire_xlib_display', 'VK_EXT_blend_operation_advanced', 'VK_EXT_debug_marker', 'VK_EXT_debug_report', 'VK_EXT_depth_range_unrestricted', 'VK_EXT_direct_mode_display', 'VK_EXT_discard_rectangles', 'VK_EXT_display_control', 'VK_EXT_display_surface_counter', 'VK_EXT_hdr_metadata', 'VK_EXT_post_depth_coverage', 'VK_EXT_sampler_filter_minmax', 'VK_EXT_shader_subgroup_ballot', 'VK_EXT_shader_subgroup_vote', 'VK_EXT_swapchain_colorspace', 'VK_EXT_validation_flags', 'VK_GOOGLE_display_timing', 'VK_IMG_filter_cubic', 'VK_IMG_format_pvrtc', 'VK_KHR_16bit_storage', 'VK_KHR_android_surface', 'VK_KHR_dedicated_allocation', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_external_fence', 'VK_KHR_external_fence_capabilities', 'VK_KHR_external_fence_fd', 'VK_KHR_external_fence_win32', 'VK_KHR_external_memory', 'VK_KHR_external_memory_capabilities', 'VK_KHR_external_memory_fd', 'VK_KHR_external_memory_win32', 'VK_KHR_external_semaphore', 'VK_KHR_external_semaphore_capabilities', 'VK_KHR_external_semaphore_fd', 'VK_KHR_external_semaphore_win32', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_surface_capabilities2', 'VK_KHR_incremental_present', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_relaxed_block_layout', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_shared_presentable_image', 'VK_KHR_storage_buffer_storage_class', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_variable_pointers', 'VK_KHR_wayland_surface', 'VK_KHR_win32_keyed_mutex', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface', 'VK_KHX_device_group', 'VK_KHX_device_group_creation', 'VK_KHX_multiview', 'VK_MVK_ios_surface', 'VK_MVK_macos_surface', 'VK_NN_vi_surface', 'VK_NVX_device_generated_commands', 'VK_NVX_multiview_per_view_attributes', 'VK_NV_clip_space_w_scaling', 'VK_NV_dedicated_allocation', 'VK_NV_external_memory', 'VK_NV_external_memory_capabilities', 'VK_NV_external_memory_win32', 'VK_NV_fill_rectangle', 'VK_NV_fragment_coverage_to_color', 'VK_NV_framebuffer_mixed_samples', 'VK_NV_geometry_shader_passthrough', 'VK_NV_glsl_shader', 'VK_NV_sample_mask_override_coverage', 'VK_NV_viewport_array2', 'VK_NV_viewport_swizzle', 'VK_NV_win32_keyed_mutex' ]
khrExts = [ 'VK_KHR_16bit_storage', 'VK_KHR_android_surface', 'VK_KHR_dedicated_allocation', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_external_fence', 'VK_KHR_external_fence_capabilities', 'VK_KHR_external_fence_fd', 'VK_KHR_external_fence_win32', 'VK_KHR_external_memory', 'VK_KHR_external_memory_capabilities', 'VK_KHR_external_memory_fd', 'VK_KHR_external_memory_win32', 'VK_KHR_external_semaphore', 'VK_KHR_external_semaphore_capabilities', 'VK_KHR_external_semaphore_fd', 'VK_KHR_external_semaphore_win32', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_surface_capabilities2', 'VK_KHR_incremental_present', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_relaxed_block_layout', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_shared_presentable_image', 'VK_KHR_storage_buffer_storage_class', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_variable_pointers', 'VK_KHR_wayland_surface', 'VK_KHR_win32_keyed_mutex', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface' ]
khxExts = [ 'VK_KHX_device_group', 'VK_KHX_device_group_creation', 'VK_KHX_multiview' ]

View File

@ -51,6 +51,6 @@ extensions[VK_NV_external_memory_win32]="VK_NV_external_memory VK_NV_external_me
extensions[VK_NV_win32_keyed_mutex]="VK_NV_external_memory VK_NV_external_memory_capabilities VK_NV_external_memory_win32"
# Define lists of all / KHR / KHX extensions
allExts="VK_AMD_draw_indirect_count VK_AMD_gcn_shader VK_AMD_gpu_shader_half_float VK_AMD_gpu_shader_int16 VK_AMD_negative_viewport_height VK_AMD_rasterization_order VK_AMD_shader_ballot VK_AMD_shader_explicit_vertex_parameter VK_AMD_shader_trinary_minmax VK_AMD_texture_gather_bias_lod VK_EXT_acquire_xlib_display VK_EXT_blend_operation_advanced VK_EXT_debug_marker VK_EXT_debug_report VK_EXT_depth_range_unrestricted VK_EXT_direct_mode_display VK_EXT_discard_rectangles VK_EXT_display_control VK_EXT_display_surface_counter VK_EXT_hdr_metadata VK_EXT_sampler_filter_minmax VK_EXT_shader_subgroup_ballot VK_EXT_shader_subgroup_vote VK_EXT_swapchain_colorspace VK_EXT_validation_flags VK_GOOGLE_display_timing VK_IMG_filter_cubic VK_IMG_format_pvrtc VK_KHR_16bit_storage VK_KHR_android_surface VK_KHR_dedicated_allocation VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_external_fence VK_KHR_external_fence_capabilities VK_KHR_external_fence_fd VK_KHR_external_fence_win32 VK_KHR_external_memory VK_KHR_external_memory_capabilities VK_KHR_external_memory_fd VK_KHR_external_memory_win32 VK_KHR_external_semaphore VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_fd VK_KHR_external_semaphore_win32 VK_KHR_get_memory_requirements2 VK_KHR_get_physical_device_properties2 VK_KHR_get_surface_capabilities2 VK_KHR_incremental_present VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_shared_presentable_image VK_KHR_storage_buffer_storage_class VK_KHR_surface VK_KHR_swapchain VK_KHR_variable_pointers VK_KHR_wayland_surface VK_KHR_win32_keyed_mutex VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface VK_KHX_device_group VK_KHX_device_group_creation VK_KHX_multiview VK_MVK_ios_surface VK_MVK_macos_surface VK_NN_vi_surface VK_NVX_device_generated_commands VK_NVX_multiview_per_view_attributes VK_NV_clip_space_w_scaling VK_NV_dedicated_allocation VK_NV_external_memory VK_NV_external_memory_capabilities VK_NV_external_memory_win32 VK_NV_fill_rectangle VK_NV_fragment_coverage_to_color VK_NV_framebuffer_mixed_samples VK_NV_geometry_shader_passthrough VK_NV_glsl_shader VK_NV_sample_mask_override_coverage VK_NV_viewport_array2 VK_NV_viewport_swizzle VK_NV_win32_keyed_mutex"
khrExts="VK_KHR_16bit_storage VK_KHR_android_surface VK_KHR_dedicated_allocation VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_external_fence VK_KHR_external_fence_capabilities VK_KHR_external_fence_fd VK_KHR_external_fence_win32 VK_KHR_external_memory VK_KHR_external_memory_capabilities VK_KHR_external_memory_fd VK_KHR_external_memory_win32 VK_KHR_external_semaphore VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_fd VK_KHR_external_semaphore_win32 VK_KHR_get_memory_requirements2 VK_KHR_get_physical_device_properties2 VK_KHR_get_surface_capabilities2 VK_KHR_incremental_present VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_shared_presentable_image VK_KHR_storage_buffer_storage_class VK_KHR_surface VK_KHR_swapchain VK_KHR_variable_pointers VK_KHR_wayland_surface VK_KHR_win32_keyed_mutex VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface"
allExts="VK_AMD_draw_indirect_count VK_AMD_gcn_shader VK_AMD_gpu_shader_half_float VK_AMD_gpu_shader_int16 VK_AMD_mixed_attachment_samples VK_AMD_negative_viewport_height VK_AMD_rasterization_order VK_AMD_shader_ballot VK_AMD_shader_explicit_vertex_parameter VK_AMD_shader_trinary_minmax VK_AMD_texture_gather_bias_lod VK_EXT_acquire_xlib_display VK_EXT_blend_operation_advanced VK_EXT_debug_marker VK_EXT_debug_report VK_EXT_depth_range_unrestricted VK_EXT_direct_mode_display VK_EXT_discard_rectangles VK_EXT_display_control VK_EXT_display_surface_counter VK_EXT_hdr_metadata VK_EXT_post_depth_coverage VK_EXT_sampler_filter_minmax VK_EXT_shader_subgroup_ballot VK_EXT_shader_subgroup_vote VK_EXT_swapchain_colorspace VK_EXT_validation_flags VK_GOOGLE_display_timing VK_IMG_filter_cubic VK_IMG_format_pvrtc VK_KHR_16bit_storage VK_KHR_android_surface VK_KHR_dedicated_allocation VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_external_fence VK_KHR_external_fence_capabilities VK_KHR_external_fence_fd VK_KHR_external_fence_win32 VK_KHR_external_memory VK_KHR_external_memory_capabilities VK_KHR_external_memory_fd VK_KHR_external_memory_win32 VK_KHR_external_semaphore VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_fd VK_KHR_external_semaphore_win32 VK_KHR_get_memory_requirements2 VK_KHR_get_physical_device_properties2 VK_KHR_get_surface_capabilities2 VK_KHR_incremental_present VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_relaxed_block_layout VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_shared_presentable_image VK_KHR_storage_buffer_storage_class VK_KHR_surface VK_KHR_swapchain VK_KHR_variable_pointers VK_KHR_wayland_surface VK_KHR_win32_keyed_mutex VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface VK_KHX_device_group VK_KHX_device_group_creation VK_KHX_multiview VK_MVK_ios_surface VK_MVK_macos_surface VK_NN_vi_surface VK_NVX_device_generated_commands VK_NVX_multiview_per_view_attributes VK_NV_clip_space_w_scaling VK_NV_dedicated_allocation VK_NV_external_memory VK_NV_external_memory_capabilities VK_NV_external_memory_win32 VK_NV_fill_rectangle VK_NV_fragment_coverage_to_color VK_NV_framebuffer_mixed_samples VK_NV_geometry_shader_passthrough VK_NV_glsl_shader VK_NV_sample_mask_override_coverage VK_NV_viewport_array2 VK_NV_viewport_swizzle VK_NV_win32_keyed_mutex"
khrExts="VK_KHR_16bit_storage VK_KHR_android_surface VK_KHR_dedicated_allocation VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_external_fence VK_KHR_external_fence_capabilities VK_KHR_external_fence_fd VK_KHR_external_fence_win32 VK_KHR_external_memory VK_KHR_external_memory_capabilities VK_KHR_external_memory_fd VK_KHR_external_memory_win32 VK_KHR_external_semaphore VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_fd VK_KHR_external_semaphore_win32 VK_KHR_get_memory_requirements2 VK_KHR_get_physical_device_properties2 VK_KHR_get_surface_capabilities2 VK_KHR_incremental_present VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_relaxed_block_layout VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_shared_presentable_image VK_KHR_storage_buffer_storage_class VK_KHR_surface VK_KHR_swapchain VK_KHR_variable_pointers VK_KHR_wayland_surface VK_KHR_win32_keyed_mutex VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface"
khxExts="VK_KHX_device_group VK_KHX_device_group_creation VK_KHX_multiview"

View File

@ -580,7 +580,7 @@ global vuPat
vuPat = re.compile('^(?P<head> [*]+)( *)(?P<tail>.*)', re.DOTALL)
# The value to start tagging VU statements at, unless overridden by -nextvu
startVUID = 1499
startVUID = 1507
if __name__ == '__main__':
parser = argparse.ArgumentParser()

View File

@ -420,22 +420,6 @@ member.
==== Attributes of tag:member tags
* attr:validextensionstructs - only valid on the `pNext` member of a
struct.
This is a comma-separated list of structures that may be accepted by
`pNext` instead of `NULL`.
This should usually only be put on the top-level structure that is
extended, for all possible chained structures - the chained structures
themselves should be tagged with attr:noautovalidity.
This will generate a validity statement on the top level structure
that validates the entire chain in one go, rather than each chained
structure repeating the list of valid structs.
[NOTE]
.Note
====
attr:validextensionstructs is deprecated and replaced by attr:structextends.
They must be kept in sync until attr:validextensionstructs is removed.
====
* attr:values - only valid on the `sType` member of a struct. This is a
comma-separated list of enumerant values that are valid for the
structure type; usually there is only a single value.
@ -1831,6 +1815,8 @@ files and Python scripts are logged in Github history.
[[changelog]]
= Change Log
* 2017-07-27 - finish removing validextensionstructs attribute and
replacing it with structextends.
* 2017-07-14 - add comment attributes or tags as valid content in several
places, replacing XML comments which could not be preserved by XML
transformation tools.

View File

@ -240,7 +240,16 @@ class COutputGenerator(OutputGenerator):
# Add extra newline after multi-line entries.
if '\n' in s:
s += '\n'
self.appendSection(category, s)
# This is a temporary workaround for internal issue #877,
# while we consider other approaches. The problem is that
# function pointer types can have dependencies on structures
# and vice-versa, so they can't be strictly separated into
# sections. The workaround is to define those types in the
# same section, in dependency order.
if (category == 'funcpointer'):
self.appendSection('struct', s)
else:
self.appendSection(category, s)
#
# Struct (e.g. C "struct" type) generation.
# This is a special case of the <type> tag where the contents are

View File

@ -115,7 +115,6 @@ Types = element types {
# optional - whether this value can be omitted by providing NULL (for
# pointers), VK_NULL_HANDLE (for handles) or 0 (for bitmasks/values)
# noautovalidity - tag stating that no automatic validity language should be generated
# validextensionstructs - comma-separate list of legal structure types in pNext chain
# values - comma-separated list of legal values, usually used only for sType enums
# <comment> - containing arbitrary text (unused)
#
@ -154,7 +153,6 @@ Type = element type {
attribute externsync { text } ? ,
attribute optional { text } ? ,
attribute noautovalidity { text } ? ,
attribute validextensionstructs { text } ? ,
attribute values { text } ? ,
mixed {
element type { TypeName } ? ,

View File

@ -682,18 +682,6 @@ class ValidityOutputGenerator(OutputGenerator):
validextensionstructs = self.registry.validextensionstructs.get(blockname)
extensionstructs = []
# Validate that the XML's "validextensionstructs" tag matches the
# list built from the "structextends" tag.
# Once everything is ported to structextends, delete this block.
validextensionstructsOld = param.attrib.get('validextensionstructs')
if validextensionstructsOld is not None:
validextensionstructsasstring = '';
if (validextensionstructs is not None):
validextensionstructsasstring = ','.join(elem for elem in validextensionstructs)
if (','.join(sorted(validextensionstructsasstring.split(','))) !=
','.join(sorted(validextensionstructsOld.split(',')))):
self.logMsg('warn', blockname, 'validextensionstructs mismatches structextends\nvalidextensionstructs=', validextensionstructsOld, '\nstructextends=', validextensionstructsasstring, '\n')
if validextensionstructs is not None:
# Check each structure name and skip it if not required by the
# generator. This allows tagging extension structs in the XML
@ -758,13 +746,13 @@ class ValidityOutputGenerator(OutputGenerator):
asciidoc += self.makeStructureType(blockname, param)
elif paramtype.text == 'void' and paramname.text == 'pNext':
asciidoc += self.makeStructureExtensionPointer(blockname, param)
# In case there's nothing to report, return None
if asciidoc == '':
return None
return asciidoc
#
# Generate all the valid usage information for a given struct or command
def makeValidUsageStatements(self, cmd, blockname, params):
@ -795,7 +783,7 @@ class ValidityOutputGenerator(OutputGenerator):
asciidoc += self.makeStructureExtensionPointer(blockname, param)
else:
asciidoc += self.createValidationLineForParameter(blockname, param, params, typecategory)
# Ensure that any parenting is properly validated, and list that a handle was found
if typecategory == 'handle':
handles.append(param)
@ -832,12 +820,12 @@ class ValidityOutputGenerator(OutputGenerator):
asciidoc += 'pname:commandBuffer must: be in the <<commandbuffers-lifecycle, recording state>>'
asciidoc += '\n'
#
#
# Start of valid queue type validation - command pool must have been
# allocated against a queue with at least one of the valid queue types
asciidoc += self.makeAnchor(blockname, 'commandBuffer', 'cmdpool')
#
#
# This test for vkCmdFillBuffer is a hack, since we have no path
# to conditionally have queues enabled or disabled by an extension.
# As the VU stuff is all moving out (hopefully soon), this hack solves the issue for now
@ -1005,7 +993,7 @@ class ValidityOutputGenerator(OutputGenerator):
renderpass = cmd.attrib.get('renderpass')
renderpass = renderpass.capitalize()
#
#
# This test for vkCmdFillBuffer is a hack, since we have no path
# to conditionally have queues enabled or disabled by an extension.
# As the VU stuff is all moving out (hopefully soon), this hack solves the issue for now
@ -1103,7 +1091,7 @@ class ValidityOutputGenerator(OutputGenerator):
else:
# Need to generate sType and pNext validation
params = typeinfo.elem.findall('member')
validity = self.makeValidUsageStatementsReturnedOnly(typeinfo.elem, typename, params)
self.writeInclude('structs', typename, validity, None, None, None, None)

View File

@ -106,7 +106,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<type category="define">// Vulkan 1.0 version number
#define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)// Patch version should always be set to 0</type>
<type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 56</type>
#define <name>VK_HEADER_VERSION</name> 57</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -546,7 +546,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPhysicalDeviceFeatures2KHR,VkPhysicalDevice16BitStorageFeaturesKHR,VkPhysicalDeviceVariablePointerFeaturesKHR,VkPhysicalDeviceMultiviewFeaturesKHX,VkDeviceGroupDeviceCreateInfoKHX">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkDeviceCreateFlags</type> <name>flags</name></member>
<member><type>uint32_t</type> <name>queueCreateInfoCount</name></member>
<member len="queueCreateInfoCount">const <type>VkDeviceQueueCreateInfo</type>* <name>pQueueCreateInfos</name></member>
@ -558,7 +558,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkInstanceCreateInfo">
<member values="VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDebugReportCallbackCreateInfoEXT,VkValidationFlagsEXT">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkInstanceCreateFlags</type> <name>flags</name></member>
<member optional="true">const <type>VkApplicationInfo</type>* <name>pApplicationInfo</name></member>
<member optional="true"><type>uint32_t</type> <name>enabledLayerCount</name></member>
@ -580,7 +580,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkMemoryAllocateInfo">
<member values="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDedicatedAllocationMemoryAllocateInfoNV,VkMemoryAllocateFlagsInfoKHX,VkMemoryDedicatedAllocateInfoKHR,VkExportMemoryAllocateInfoKHR,VkImportMemoryWin32HandleInfoKHR,VkImportMemoryWin32HandleInfoNV,VkImportMemoryFdInfoKHR,VkExportMemoryAllocateInfoNV,VkExportMemoryWin32HandleInfoKHR,VkExportMemoryWin32HandleInfoNV">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member><type>VkDeviceSize</type> <name>allocationSize</name><comment>Size of memory allocation</comment></member>
<member><type>uint32_t</type> <name>memoryTypeIndex</name><comment>Index of the of the memory type to allocate from</comment></member>
</type>
@ -663,7 +663,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkBufferCreateInfo">
<member values="VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDedicatedAllocationBufferCreateInfoNV,VkExternalMemoryBufferCreateInfoKHR">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkBufferCreateFlags</type> <name>flags</name><comment>Buffer creation flags</comment></member>
<member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member>
<member><type>VkBufferUsageFlags</type> <name>usage</name><comment>Buffer usage flags</comment></member>
@ -729,7 +729,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkImageCreateInfo">
<member values="VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDedicatedAllocationImageCreateInfoNV,VkImageSwapchainCreateInfoKHX,VkExternalMemoryImageCreateInfoKHR,VkExternalMemoryImageCreateInfoNV">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkImageCreateFlags</type> <name>flags</name><comment>Image creation flags</comment></member>
<member><type>VkImageType</type> <name>imageType</name></member>
<member><type>VkFormat</type> <name>format</name></member>
@ -798,7 +798,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkBindSparseInfo">
<member values="VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDeviceGroupBindSparseInfoKHX">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member>
<member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member>
<member optional="true"><type>uint32_t</type> <name>bufferBindCount</name></member>
@ -942,7 +942,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkPipelineViewportStateCreateInfo">
<member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPipelineViewportWScalingStateCreateInfoNV,VkPipelineViewportSwizzleStateCreateInfoNV">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkPipelineViewportStateCreateFlags</type> <name>flags</name></member>
<member><type>uint32_t</type> <name>viewportCount</name></member>
<member noautovalidity="true" optional="true" len="viewportCount">const <type>VkViewport</type>* <name>pViewports</name></member>
@ -951,7 +951,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkPipelineRasterizationStateCreateInfo">
<member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPipelineRasterizationStateRasterizationOrderAMD">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkPipelineRasterizationStateCreateFlags</type> <name>flags</name></member>
<member><type>VkBool32</type> <name>depthClampEnable</name></member>
<member><type>VkBool32</type> <name>rasterizerDiscardEnable</name></member>
@ -966,7 +966,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkPipelineMultisampleStateCreateInfo">
<member values="VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPipelineCoverageToColorStateCreateInfoNV,VkPipelineCoverageModulationStateCreateInfoNV">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkPipelineMultisampleStateCreateFlags</type> <name>flags</name></member>
<member><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name><comment>Number of samples used for rasterization</comment></member>
<member><type>VkBool32</type> <name>sampleShadingEnable</name><comment>optional (GL45)</comment></member>
@ -987,7 +987,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkPipelineColorBlendStateCreateInfo">
<member values="VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPipelineColorBlendAdvancedStateCreateInfoEXT">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkPipelineColorBlendStateCreateFlags</type> <name>flags</name></member>
<member><type>VkBool32</type> <name>logicOpEnable</name></member>
<member noautovalidity="true"><type>VkLogicOp</type> <name>logicOp</name></member>
@ -1027,7 +1027,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkGraphicsPipelineCreateInfo">
<member values="VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPipelineDiscardRectangleStateCreateInfoEXT">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name><comment>Pipeline creation flags</comment></member>
<member><type>uint32_t</type> <name>stageCount</name></member>
<member len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member>
@ -1069,7 +1069,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkSamplerCreateInfo">
<member values="VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkSamplerReductionModeCreateInfoEXT">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkSamplerCreateFlags</type> <name>flags</name></member>
<member><type>VkFilter</type> <name>magFilter</name><comment>Filter mode for magnification</comment></member>
<member><type>VkFilter</type> <name>minFilter</name><comment>Filter mode for minifiation</comment></member>
@ -1112,13 +1112,13 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkCommandBufferBeginInfo">
<member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDeviceGroupCommandBufferBeginInfoKHX">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkCommandBufferUsageFlags</type> <name>flags</name><comment>Command buffer usage flags</comment></member>
<member optional="true" noautovalidity="true">const <type>VkCommandBufferInheritanceInfo</type>* <name>pInheritanceInfo</name><comment>Pointer to inheritance info for secondary command buffers</comment></member>
</type>
<type category="struct" name="VkRenderPassBeginInfo">
<member values="VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDeviceGroupRenderPassBeginInfoKHX">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member><type>VkRenderPass</type> <name>renderPass</name></member>
<member><type>VkFramebuffer</type> <name>framebuffer</name></member>
<member><type>VkRect2D</type> <name>renderArea</name></member>
@ -1181,7 +1181,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkRenderPassCreateInfo">
<member values="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkRenderPassMultiviewCreateInfoKHX">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkRenderPassCreateFlags</type> <name>flags</name></member>
<member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
<member len="attachmentCount">const <type>VkAttachmentDescription</type>* <name>pAttachments</name></member>
@ -1197,7 +1197,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkFenceCreateInfo">
<member values="VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkExportFenceCreateInfoKHR,VkExportFenceWin32HandleInfoKHR">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkFenceCreateFlags</type> <name>flags</name><comment>Fence creation flags</comment></member>
</type>
<type category="struct" name="VkPhysicalDeviceFeatures">
@ -1383,7 +1383,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkSemaphoreCreateInfo">
<member values="VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkExportSemaphoreCreateInfoKHR,VkExportSemaphoreWin32HandleInfoKHR">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkSemaphoreCreateFlags</type> <name>flags</name><comment>Semaphore creation flags</comment></member>
</type>
<type category="struct" name="VkQueryPoolCreateInfo">
@ -1425,7 +1425,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkSubmitInfo">
<member values="VK_STRUCTURE_TYPE_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkWin32KeyedMutexAcquireReleaseInfoNV,VkWin32KeyedMutexAcquireReleaseInfoKHR,VkD3D12FenceSubmitInfoKHR,VkDeviceGroupSubmitInfoKHX">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member>
<member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member>
<member len="waitSemaphoreCount">const <type>VkPipelineStageFlags</type>* <name>pWaitDstStageMask</name></member>
@ -1557,7 +1557,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkSwapchainCreateInfoKHR">
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDeviceGroupSwapchainCreateInfoKHX,VkSwapchainCounterCreateInfoEXT">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkSwapchainCreateFlagsKHR</type> <name>flags</name></member>
<member><type>VkSurfaceKHR</type> <name>surface</name><comment>The swapchain's target surface</comment></member>
<member><type>uint32_t</type> <name>minImageCount</name><comment>Minimum number of presentation images the application needs</comment></member>
@ -1577,7 +1577,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkPresentInfoKHR">
<member values="VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDisplayPresentInfoKHR,VkPresentRegionsKHR,VkDeviceGroupPresentInfoKHX,VkPresentTimesInfoGOOGLE">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name><comment>Number of semaphores to wait for before presenting</comment></member>
<member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name><comment>Semaphores to wait for before presenting</comment></member>
<member><type>uint32_t</type> <name>swapchainCount</name><comment>Number of swapchains to present in this call</comment></member>
@ -1782,12 +1782,12 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkPhysicalDeviceFeatures2KHR" structextends="VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPhysicalDevice16BitStorageFeaturesKHR,VkPhysicalDeviceVariablePointerFeaturesKHR,VkPhysicalDeviceMultiviewFeaturesKHX,VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT"><type>void</type>* <name>pNext</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>VkPhysicalDeviceFeatures</type> <name>features</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceProperties2KHR" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPhysicalDevicePushDescriptorPropertiesKHR,VkPhysicalDeviceIDPropertiesKHR,VkPhysicalDeviceMultiviewPropertiesKHX,VkPhysicalDeviceDiscardRectanglePropertiesEXT,VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX,VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT,VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT"><type>void</type>* <name>pNext</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>VkPhysicalDeviceProperties</type> <name>properties</name></member>
</type>
<type category="struct" name="VkFormatProperties2KHR" returnedonly="true">
@ -1797,12 +1797,12 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkImageFormatProperties2KHR" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkExternalImageFormatPropertiesKHR,VkTextureLODGatherFormatPropertiesAMD"><type>void</type>* <name>pNext</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>VkImageFormatProperties</type> <name>imageFormatProperties</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceImageFormatInfo2KHR">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPhysicalDeviceExternalImageFormatInfoKHR">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member><type>VkFormat</type> <name>format</name></member>
<member><type>VkImageType</type> <name>type</name></member>
<member><type>VkImageTiling</type> <name>tiling</name></member>
@ -2159,7 +2159,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkBindImageMemoryInfoKHX">
<member values="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkBindImageMemorySwapchainInfoKHX">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member><type>VkImage</type> <name>image</name></member>
<member><type>VkDeviceMemory</type> <name>memory</name></member>
<member><type>VkDeviceSize</type> <name>memoryOffset</name></member>
@ -2360,7 +2360,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkSurfaceCapabilities2KHR" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkSharedPresentSurfaceCapabilitiesKHR"><type>void</type>* <name>pNext</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>VkSurfaceCapabilitiesKHR</type> <name>surfaceCapabilities</name></member>
</type>
<type category="struct" name="VkSurfaceFormat2KHR" returnedonly="true">
@ -2398,7 +2398,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
</type>
<type category="struct" name="VkMemoryRequirements2KHR" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkMemoryDedicatedRequirementsKHR"><type>void</type>* <name>pNext</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>VkMemoryRequirements</type> <name>memoryRequirements</name></member>
</type>
<type category="struct" name="VkSparseImageMemoryRequirements2KHR" returnedonly="true">
@ -6691,10 +6691,10 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<enum value="&quot;VK_AMD_extension_136&quot;" name="VK_AMD_EXTENSION_136_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_137" number="137" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<extension name="VK_AMD_mixed_attachment_samples" number="137" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
<require>
<enum value="0" name="VK_AMD_EXTENSION_137_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_137&quot;" name="VK_AMD_EXTENSION_137_EXTENSION_NAME"/>
<enum value="1" name="VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_mixed_attachment_samples&quot;" name="VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_138" number="138" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
@ -6739,9 +6739,9 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<enum value="&quot;VK_AMD_extension_144&quot;" name="VK_AMD_EXTENSION_144_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_KHR_relaxed_block_layout" number="145" author="KHR" contact="John Kessenich @johnk" supported="disabled">
<extension name="VK_KHR_relaxed_block_layout" number="145" type="device" author="KHR" contact="John Kessenich @johnk" supported="vulkan">
<require>
<enum value="0" name="VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION"/>
<enum value="1" name="VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_relaxed_block_layout&quot;" name="VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME"/>
</require>
</extension>
@ -6880,10 +6880,10 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<enum value="&quot;VK_NV_extension_155&quot;" name="VK_NV_EXTENSION_155_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_NV_extension_156" number="156" author="NV" contact="Jeff Bolz @jbolz" supported="disabled">
<extension name="VK_EXT_post_depth_coverage" number="156" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan">
<require>
<enum value="0" name="VK_NV_EXTENSION_156_SPEC_VERSION"/>
<enum value="&quot;VK_NV_extension_156&quot;" name="VK_NV_EXTENSION_156_EXTENSION_NAME"/>
<enum value="1" name="VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_post_depth_coverage&quot;" name="VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_KHR_extension_157" number="157" author="KHR" contact="Andrew Garrard @fluppeteer" supported="disabled">
@ -6916,5 +6916,11 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<enum value="&quot;VK_EXT_extension_161&quot;" name="VK_EXT_EXTENSION_161_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_EXT_extension_162" number="162" author="NV" contact="Jeff Bolz @jbolz" supported="disabled">
<require>
<enum value="0" name="VK_EXT_EXTENSION_162_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_162&quot;" name="VK_EXT_EXTENSION_162_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
</registry>

View File

@ -43,7 +43,7 @@ extern "C" {
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file
#define VK_HEADER_VERSION 56
#define VK_HEADER_VERSION 57
#define VK_NULL_HANDLE 0
@ -1366,6 +1366,27 @@ typedef enum VkStencilFaceFlagBits {
} VkStencilFaceFlagBits;
typedef VkFlags VkStencilFaceFlags;
typedef struct VkApplicationInfo {
VkStructureType sType;
const void* pNext;
const char* pApplicationName;
uint32_t applicationVersion;
const char* pEngineName;
uint32_t engineVersion;
uint32_t apiVersion;
} VkApplicationInfo;
typedef struct VkInstanceCreateInfo {
VkStructureType sType;
const void* pNext;
VkInstanceCreateFlags flags;
const VkApplicationInfo* pApplicationInfo;
uint32_t enabledLayerCount;
const char* const* ppEnabledLayerNames;
uint32_t enabledExtensionCount;
const char* const* ppEnabledExtensionNames;
} VkInstanceCreateInfo;
typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
void* pUserData,
size_t size,
@ -1395,29 +1416,6 @@ typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
VkInternalAllocationType allocationType,
VkSystemAllocationScope allocationScope);
typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
typedef struct VkApplicationInfo {
VkStructureType sType;
const void* pNext;
const char* pApplicationName;
uint32_t applicationVersion;
const char* pEngineName;
uint32_t engineVersion;
uint32_t apiVersion;
} VkApplicationInfo;
typedef struct VkInstanceCreateInfo {
VkStructureType sType;
const void* pNext;
VkInstanceCreateFlags flags;
const VkApplicationInfo* pApplicationInfo;
uint32_t enabledLayerCount;
const char* const* ppEnabledLayerNames;
uint32_t enabledExtensionCount;
const char* const* ppEnabledExtensionNames;
} VkInstanceCreateInfo;
typedef struct VkAllocationCallbacks {
void* pUserData;
PFN_vkAllocationFunction pfnAllocation;
@ -1658,6 +1656,7 @@ typedef struct VkPhysicalDeviceMemoryProperties {
VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
} VkPhysicalDeviceMemoryProperties;
typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
typedef struct VkDeviceQueueCreateInfo {
VkStructureType sType;
const void* pNext;
@ -4852,6 +4851,11 @@ typedef struct VkMemoryDedicatedAllocateInfoKHR {
#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
#define VK_KHR_relaxed_block_layout 1
#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
#define VK_KHR_get_memory_requirements2 1
#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
@ -4980,7 +4984,6 @@ typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
const char* pMessage,
void* pUserData);
typedef struct VkDebugReportCallbackCreateInfoEXT {
VkStructureType sType;
const void* pNext;
@ -6334,6 +6337,11 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
#define VK_AMD_mixed_attachment_samples 1
#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
#define VK_EXT_blend_operation_advanced 1
#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
@ -6427,6 +6435,11 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
#define VK_EXT_post_depth_coverage 1
#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
#ifdef __cplusplus
}
#endif