(The previous commit didn't actually include internal gitlab changes
since 1.1.89; fixed now). Change log for October 28, 2018 Vulkan 1.1.90 spec update: * Update release number to 90. Public Issues: * Tag flink:vkQueueWaitIdle as `externsync` in `vk.xml` (public pull request 815). * Update README (public pull request 834). * `VK_NV_framebuffer_mixed_samples` and `VK_AMD_mixed_attachment_samples` had confusing and contradictory valid usage statements when read in the all-extensions spec build. Change them to explicitly mention which extension each is for (public issue Vulkan-ValidationLayers/issues/353). Internal Issues: * Update `COPYING.md` to clarify how externally generated Vulkan Specifications (for translations, annotations, or other reasons) must be copyrighted, and acknowledge the Exception Clause on the `vk.xml` license (internal issue 1079). * Specify that flink:vkGetPhysicalDeviceImageFormatProperties may: return pname:maxMipLevels 1 if the format is ycbcr (internal issue 1361). * Clarify previously underspecified language for flink:vkCmdPushConstants::pname:pStageFlags regarding use of push constants across multiple pipelines (internal issue 1403). * Fix typo in XML/headers for ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT, which was previously etext:VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT (internal issue 1428). * Fix markup of equations that were sporadically breaking the `optimize-pdf` step of PDF generation, due (apparently) to inconsistent treatment of unwrapped multicharacter terms by different LaTeX parsers (internal issue 1435). * For the <<memory-model-synchronizes-with synchronizes-with>> memory model relation cases involving a release barrier plus relaxed atomic write, treat the atomic as if it were a release atomic and allow the acquire side to read from its hypothetical release sequence. This is more consistent with how C++ defines synchronization for release fences (internal issue cross-api/memory-model#72). * Minor editorial changes to the <<memory-model, memory model>> appendix based on external feedback.
This commit is contained in:
parent
1858598fe0
commit
894211de5f
|
@ -0,0 +1,71 @@
|
||||||
|
|
||||||
|
# _Vulkan Feature Development Checklist Template_
|
||||||
|
|
||||||
|
_This template captures checklists for the stages of development that
|
||||||
|
a Vulkan KHR extension passes through as it moves from development to
|
||||||
|
ratification and release. You should create an issue from this template
|
||||||
|
when the extension draft is stable and there is reasonable consensus in
|
||||||
|
the working group that it is on a path to ratification._
|
||||||
|
|
||||||
|
_Edit the template to suit the extension you are considering (and to
|
||||||
|
delete the italicized instructions). Delete any requirements that are not
|
||||||
|
relevant; for example, an extension that has no language dependencies
|
||||||
|
will not need SPIR-V / GLSL / HLSL items, and an EXT GLSL extension
|
||||||
|
will not require Promoter ratification._
|
||||||
|
|
||||||
|
_Requirements may be waived by vote of of the working group, provided
|
||||||
|
that a 2/3 majority of non-abstaining vote are in favor._
|
||||||
|
|
||||||
|
# Release checklist for _VK_KHR_extension_name_here_
|
||||||
|
|
||||||
|
## Preconditions for Call for Votes (CfV)
|
||||||
|
|
||||||
|
_A formal CfV is issued following agreement at a Tuesday meeting that a
|
||||||
|
vote should be held at the following Tuesday meeting. Preconditions
|
||||||
|
for a CfV are as follows; "specification stable" means that there are
|
||||||
|
no MRs in flight that modify behavior defined by the extension and its
|
||||||
|
dependencies. Delete any of the following preconditions that are not relevant to
|
||||||
|
the extension in question_
|
||||||
|
|
||||||
|
|
||||||
|
- [ ] VAP consulted to the extent the WG considers appropriate
|
||||||
|
- [ ] CTS tests approved with three passing implementations
|
||||||
|
- [ ] Vulkan specification merged and stable in devel
|
||||||
|
- [ ] SPIR-V specification merged and stable
|
||||||
|
- [ ] GLSL specification merged and stable
|
||||||
|
|
||||||
|
## Preconditions for submission to Promoters
|
||||||
|
|
||||||
|
- [ ] WG vote to submit passed with a 3/4 majority
|
||||||
|
- [ ] Submission package available for Promoter review
|
||||||
|
|
||||||
|
## Preconditions for creating public release issue on GitHub
|
||||||
|
|
||||||
|
_Delete any of the following preconditions that are not relevant to
|
||||||
|
the extension in question_
|
||||||
|
|
||||||
|
- [ ] Vulkan specification ratified by Promoters
|
||||||
|
- [ ] SPIR-V specification ratified by Promoters
|
||||||
|
- [ ] GLSL specification ratified by Promoters
|
||||||
|
- [ ] GLSLang implementation approved to merge
|
||||||
|
- [ ] Marketing summary written and approved by Vulkan WG and PR team
|
||||||
|
- [ ] Validation layer implementation approved to merge
|
||||||
|
- [ ] HLSL mapping defined
|
||||||
|
- [ ] HLSL mapping supported in GLSLang
|
||||||
|
- [ ] HLSL mapping supported in DXC
|
||||||
|
- [ ] CTS tests approved to merge
|
||||||
|
- [ ] SPIR-V tools implementation approved to merge
|
||||||
|
- [ ] Loader support approved to merge (for instance extensions)
|
||||||
|
- [ ] Public release approved by Vulkan WG
|
||||||
|
|
||||||
|
## Preconditions for closing this issue
|
||||||
|
|
||||||
|
- [ ] Public release issue items checked off and issue closed
|
||||||
|
|
||||||
|
## Additional (Optional) Items
|
||||||
|
|
||||||
|
_These additional items are recommended for creation at some
|
||||||
|
point during or after the release, but are not required at any point._
|
||||||
|
|
||||||
|
- [ ] Usage Examples
|
||||||
|
- [ ] Usage Advice
|
|
@ -8,6 +8,51 @@ public pull requests that have been accepted.
|
||||||
|
|
||||||
-----------------------------------------------------
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
Change log for October 28, 2018 Vulkan 1.1.90 spec update:
|
||||||
|
|
||||||
|
* Update release number to 90.
|
||||||
|
|
||||||
|
Public Issues:
|
||||||
|
|
||||||
|
* Tag flink:vkQueueWaitIdle as `externsync` in `vk.xml` (public pull
|
||||||
|
request 815).
|
||||||
|
* Update README (public pull request 834).
|
||||||
|
* `VK_NV_framebuffer_mixed_samples` and `VK_AMD_mixed_attachment_samples`
|
||||||
|
had confusing and contradictory valid usage statements when read in the
|
||||||
|
all-extensions spec build. Change them to explicitly mention which
|
||||||
|
extension each is for (public issue Vulkan-ValidationLayers/issues/353).
|
||||||
|
|
||||||
|
Internal Issues:
|
||||||
|
|
||||||
|
* Update `COPYING.md` to clarify how externally generated Vulkan
|
||||||
|
Specifications (for translations, annotations, or other reasons) must be
|
||||||
|
copyrighted, and acknowledge the Exception Clause on the `vk.xml`
|
||||||
|
license (internal issue 1079).
|
||||||
|
* Specify that flink:vkGetPhysicalDeviceImageFormatProperties may: return
|
||||||
|
pname:maxMipLevels 1 if the format is ycbcr (internal issue 1361).
|
||||||
|
* Clarify previously underspecified language for
|
||||||
|
flink:vkCmdPushConstants::pname:pStageFlags regarding use of push
|
||||||
|
constants across multiple pipelines (internal issue 1403).
|
||||||
|
* Fix typo in XML/headers for
|
||||||
|
ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
|
||||||
|
which was previously
|
||||||
|
etext:VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT
|
||||||
|
(internal issue 1428).
|
||||||
|
* Fix markup of equations that were sporadically breaking the
|
||||||
|
`optimize-pdf` step of PDF generation, due (apparently) to inconsistent
|
||||||
|
treatment of unwrapped multicharacter terms by different LaTeX parsers
|
||||||
|
(internal issue 1435).
|
||||||
|
* For the <<memory-model-synchronizes-with synchronizes-with>> memory
|
||||||
|
model relation cases involving a release barrier plus relaxed atomic
|
||||||
|
write, treat the atomic as if it were a release atomic and allow the
|
||||||
|
acquire side to read from its hypothetical release sequence. This is
|
||||||
|
more consistent with how C++ defines synchronization for release fences
|
||||||
|
(internal issue cross-api/memory-model#72).
|
||||||
|
* Minor editorial changes to the <<memory-model, memory model>> appendix
|
||||||
|
based on external feedback.
|
||||||
|
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
Change log for October 21, 2018 Vulkan 1.1.89 spec update:
|
Change log for October 21, 2018 Vulkan 1.1.89 spec update:
|
||||||
|
|
||||||
* Update release number to 89.
|
* Update release number to 89.
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -112,7 +112,7 @@ VERBOSE =
|
||||||
# EXTRAATTRIBS sets additional attributes, if passed to make
|
# EXTRAATTRIBS sets additional attributes, if passed to make
|
||||||
# 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 = 89
|
PATCHVERSION = 90
|
||||||
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
|
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
|
||||||
SPECREVISION = 1.1.$(PATCHVERSION)
|
SPECREVISION = 1.1.$(PATCHVERSION)
|
||||||
else
|
else
|
||||||
|
|
|
@ -14,7 +14,7 @@ include::meta/VK_KHR_8bit_storage.txt[]
|
||||||
*Contributors*::
|
*Contributors*::
|
||||||
- Alexander Galazin, Arm
|
- Alexander Galazin, Arm
|
||||||
|
|
||||||
The +VK_KHR_8bit_storage+ extension allows use of 8-bit types in uniform and
|
The `VK_KHR_8bit_storage` extension allows use of 8-bit types in uniform and
|
||||||
storage buffers, and push constant blocks.
|
storage buffers, and push constant blocks.
|
||||||
This extension introduces several new optional features which map to SPIR-V
|
This extension introduces several new optional features which map to SPIR-V
|
||||||
capabilities and allow access to 8-bit data in code:Block-decorated objects
|
capabilities and allow access to 8-bit data in code:Block-decorated objects
|
||||||
|
|
|
@ -19,7 +19,7 @@ include::meta/VK_KHR_vulkan_memory_model.txt[]
|
||||||
- Robert Simpson, Qualcomm Technologies, Inc.
|
- Robert Simpson, Qualcomm Technologies, Inc.
|
||||||
- Brian Sumner, AMD
|
- Brian Sumner, AMD
|
||||||
|
|
||||||
The +VK_KHR_vulkan_memory_model+ extension allows use of the
|
The `VK_KHR_vulkan_memory_model` extension allows use of the
|
||||||
<<memory-model,Vulkan Memory Model>>, which formally defines how to
|
<<memory-model,Vulkan Memory Model>>, which formally defines how to
|
||||||
synchronize memory accesses to the same memory locations performed by
|
synchronize memory accesses to the same memory locations performed by
|
||||||
multiple shader invocations.
|
multiple shader invocations.
|
||||||
|
|
|
@ -122,7 +122,7 @@ ifdef::VK_EXT_astc_decode_mode[]
|
||||||
|
|
||||||
=== ASTC decode mode
|
=== ASTC decode mode
|
||||||
|
|
||||||
If the +VK_EXT_astc_decode_mode+ extension is enabled the ASTC decoding
|
If the `VK_EXT_astc_decode_mode` extension is enabled the ASTC decoding
|
||||||
described in the <<data-format,Khronos Data Format Specification>> is
|
described in the <<data-format,Khronos Data Format Specification>> is
|
||||||
modified by replacing or modifying the corresponding sections as described
|
modified by replacing or modifying the corresponding sections as described
|
||||||
below.
|
below.
|
||||||
|
|
|
@ -175,9 +175,9 @@ potentially-mutually-ordered and any of the following are true:
|
||||||
* A is a device operation, B is a host operation, and the implementation
|
* A is a device operation, B is a host operation, and the implementation
|
||||||
supports concurrent host- and device-atomics.
|
supports concurrent host- and device-atomics.
|
||||||
|
|
||||||
NOTE: If two atomic operations are not mutually-ordered, and if their sets of
|
NOTE: If two atomic operations are not mutually-ordered, and if their sets
|
||||||
memory locations overlap, then each must: be synchronized against the other
|
of memory locations overlap, then each must: be synchronized against the
|
||||||
as if they were non-atomic operations.
|
other as if they were non-atomic operations.
|
||||||
|
|
||||||
[[memory-model-scoped-modification-order]]
|
[[memory-model-scoped-modification-order]]
|
||||||
== Scoped Modification Order
|
== Scoped Modification Order
|
||||||
|
@ -273,9 +273,9 @@ tessellation control shaders, which is the only execution model where output
|
||||||
variables are shared between invocations.
|
variables are shared between invocations.
|
||||||
|
|
||||||
The memory semantics operand also optionally includes availability and
|
The memory semantics operand also optionally includes availability and
|
||||||
visibility flags, which apply optional availability and visibility operations as
|
visibility flags, which apply optional availability and visibility
|
||||||
described in <<memory-model-availability-visibility,availability and
|
operations as described in
|
||||||
visibility>>.
|
<<memory-model-availability-visibility,availability and visibility>>.
|
||||||
The availability/visibility flags are:
|
The availability/visibility flags are:
|
||||||
|
|
||||||
* MakeAvailable: Semantics must: be Release or AcquireRelease.
|
* MakeAvailable: Semantics must: be Release or AcquireRelease.
|
||||||
|
@ -361,8 +361,8 @@ synchronizes-with B if all of the following are true:
|
||||||
* there exists an atomic read Y (with any memory semantics)
|
* there exists an atomic read Y (with any memory semantics)
|
||||||
* Y is program-ordered before B
|
* Y is program-ordered before B
|
||||||
* X and Y are mutually-ordered
|
* X and Y are mutually-ordered
|
||||||
* Y reads the value written by X or by an operation in the release sequence
|
* Y reads the value written by X or by an operation in the release
|
||||||
headed by X
|
sequence headed by X
|
||||||
** If X is relaxed, it is still considered to head a hypothetical release
|
** If X is relaxed, it is still considered to head a hypothetical release
|
||||||
sequence for this rule
|
sequence for this rule
|
||||||
* A and B are in the instance of each other's memory scopes
|
* A and B are in the instance of each other's memory scopes
|
||||||
|
@ -371,8 +371,8 @@ synchronizes-with B if all of the following are true:
|
||||||
mutually ordered.
|
mutually ordered.
|
||||||
|
|
||||||
If A is a release barrier and B is an acquire barrier and C is a control
|
If A is a release barrier and B is an acquire barrier and C is a control
|
||||||
barrier (where A can optionally equal C and B can optionally equal C),
|
barrier (where A can optionally equal C and B can optionally equal C), then
|
||||||
then A synchronizes-with B if all of the following are true:
|
A synchronizes-with B if all of the following are true:
|
||||||
|
|
||||||
* A is program-ordered before (or equals) C
|
* A is program-ordered before (or equals) C
|
||||||
* C is program-ordered before (or equals) B
|
* C is program-ordered before (or equals) B
|
||||||
|
|
|
@ -592,10 +592,10 @@ ifdef::VK_AMD_mixed_attachment_samples[]
|
||||||
[[fragops-mixed-attachment-samples]]
|
[[fragops-mixed-attachment-samples]]
|
||||||
== Mixed attachment samples
|
== Mixed attachment samples
|
||||||
|
|
||||||
When the +VK_AMD_mixed_attachment_samples+ extension is enabled,
|
When the `VK_AMD_mixed_attachment_samples` extension is enabled, special
|
||||||
special rules apply to per-fragment operations when the number of samples of
|
rules apply to per-fragment operations when the number of samples of the
|
||||||
the color attachments differs from the number of samples of the
|
color attachments differs from the number of samples of the depth/stencil
|
||||||
depth/stencil attachment used in a subpass.
|
attachment used in a subpass.
|
||||||
|
|
||||||
Let [eq]#C# be the number of color attachment samples and [eq]#D# be the
|
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.
|
number of depth/stencil attachment samples used by a given subpass.
|
||||||
|
@ -1267,14 +1267,14 @@ with one bit for each sample in the color attachment(s) for the subpass.
|
||||||
If a bit in the color sample mask is 0, then blending and writing to the
|
If a bit in the color sample mask is 0, then blending and writing to the
|
||||||
framebuffer are not performed for that sample.
|
framebuffer are not performed for that sample.
|
||||||
|
|
||||||
When the +VK_NV_framebuffer_mixed_samples+ extension is not enabled,
|
When the `VK_NV_framebuffer_mixed_samples` extension is not enabled, each
|
||||||
each color sample is associated with a unique rasterization sample, and the
|
color sample is associated with a unique rasterization sample, and the value
|
||||||
value of the coverage mask is assigned to the color sample mask.
|
of the coverage mask is assigned to the color sample mask.
|
||||||
|
|
||||||
ifdef::VK_NV_framebuffer_mixed_samples[]
|
ifdef::VK_NV_framebuffer_mixed_samples[]
|
||||||
|
|
||||||
When the +VK_NV_framebuffer_mixed_samples+ extension is enabled,
|
When the `VK_NV_framebuffer_mixed_samples` extension is enabled, if the
|
||||||
if the pipeline's
|
pipeline's
|
||||||
slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples is
|
slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples is
|
||||||
greater than one and the slink:VkAttachmentDescription::pname:samples of the
|
greater than one and the slink:VkAttachmentDescription::pname:samples of the
|
||||||
color attachments is one, then the fragment's coverage is reduced from
|
color attachments is one, then the fragment's coverage is reduced from
|
||||||
|
|
|
@ -840,28 +840,28 @@ endif::VK_EXT_sample_locations[]
|
||||||
<<descriptorsets-pipelinelayout-consistency,consistent>> with all
|
<<descriptorsets-pipelinelayout-consistency,consistent>> with all
|
||||||
shaders specified in pname:pStages
|
shaders specified in pname:pStages
|
||||||
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-00757]]
|
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-00757]]
|
||||||
If neither the +VK_AMD_mixed_attachment_samples+ nor the
|
If neither the `VK_AMD_mixed_attachment_samples` nor the
|
||||||
+VK_NV_framebuffer_mixed_samples+ extensions are enabled, and if
|
`VK_NV_framebuffer_mixed_samples` extensions are enabled, and if
|
||||||
pname:subpass uses color and/or depth/stencil attachments, then the
|
pname:subpass uses color and/or depth/stencil attachments, then the
|
||||||
pname:rasterizationSamples member of pname:pMultisampleState must: be
|
pname:rasterizationSamples member of pname:pMultisampleState must: be
|
||||||
the same as the sample count for those subpass attachments
|
the same as the sample count for those subpass attachments
|
||||||
ifdef::VK_AMD_mixed_attachment_samples[]
|
ifdef::VK_AMD_mixed_attachment_samples[]
|
||||||
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-01505]]
|
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-01505]]
|
||||||
If the +VK_AMD_mixed_attachment_samples+ extension is enabled, and
|
If the `VK_AMD_mixed_attachment_samples` extension is enabled, and if
|
||||||
if pname:subpass uses color and/or depth/stencil attachments, then the
|
pname:subpass uses color and/or depth/stencil attachments, then the
|
||||||
pname:rasterizationSamples member of pname:pMultisampleState must: equal
|
pname:rasterizationSamples member of pname:pMultisampleState must: equal
|
||||||
the maximum of the sample counts of those subpass attachments
|
the maximum of the sample counts of those subpass attachments
|
||||||
endif::VK_AMD_mixed_attachment_samples[]
|
endif::VK_AMD_mixed_attachment_samples[]
|
||||||
ifdef::VK_NV_framebuffer_mixed_samples[]
|
ifdef::VK_NV_framebuffer_mixed_samples[]
|
||||||
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-01411]]
|
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-01411]]
|
||||||
If the +VK_NV_framebuffer_mixed_samples+ extension is enabled, and
|
If the `VK_NV_framebuffer_mixed_samples` extension is enabled, and if
|
||||||
if pname:subpass has a depth/stencil attachment and depth test, stencil
|
pname:subpass has a depth/stencil attachment and depth test, stencil
|
||||||
test, or depth bounds test are enabled, then the
|
test, or depth bounds test are enabled, then the
|
||||||
pname:rasterizationSamples member of pname:pMultisampleState must: be
|
pname:rasterizationSamples member of pname:pMultisampleState must: be
|
||||||
the same as the sample count of the depth/stencil attachment
|
the same as the sample count of the depth/stencil attachment
|
||||||
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-01412]]
|
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-01412]]
|
||||||
If the +VK_NV_framebuffer_mixed_samples+ extension is enabled, and
|
If the `VK_NV_framebuffer_mixed_samples` extension is enabled, and if
|
||||||
if pname:subpass has any color attachments, then the
|
pname:subpass has any color attachments, then the
|
||||||
pname:rasterizationSamples member of pname:pMultisampleState must: be
|
pname:rasterizationSamples member of pname:pMultisampleState must: be
|
||||||
greater than or equal to the sample count for those subpass attachments
|
greater than or equal to the sample count for those subpass attachments
|
||||||
endif::VK_NV_framebuffer_mixed_samples[]
|
endif::VK_NV_framebuffer_mixed_samples[]
|
||||||
|
|
|
@ -153,10 +153,10 @@ include::../api/structs/VkPipelineMultisampleStateCreateInfo.txt[]
|
||||||
pname:minSampleShading must: be in the range [eq]#[0,1]#
|
pname:minSampleShading must: be in the range [eq]#[0,1]#
|
||||||
ifdef::VK_NV_framebuffer_mixed_samples[]
|
ifdef::VK_NV_framebuffer_mixed_samples[]
|
||||||
* [[VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415]]
|
* [[VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415]]
|
||||||
If the +VK_NV_framebuffer_mixed_samples+ extension is enabled, and
|
If the `VK_NV_framebuffer_mixed_samples` extension is enabled, and if
|
||||||
if the subpass has any color attachments and pname:rasterizationSamples
|
the subpass has any color attachments and pname:rasterizationSamples is
|
||||||
is greater than the number of color samples, then
|
greater than the number of color samples, then pname:sampleShadingEnable
|
||||||
pname:sampleShadingEnable must: be ename:VK_FALSE
|
must: be ename:VK_FALSE
|
||||||
endif::VK_NV_framebuffer_mixed_samples[]
|
endif::VK_NV_framebuffer_mixed_samples[]
|
||||||
|
|
||||||
****
|
****
|
||||||
|
@ -184,16 +184,16 @@ Surviving fragments are processed by fragment shaders.
|
||||||
Fragment shaders determine associated data for fragments, and can: also
|
Fragment shaders determine associated data for fragments, and can: also
|
||||||
modify or replace their assigned depth values.
|
modify or replace their assigned depth values.
|
||||||
|
|
||||||
When the +VK_AMD_mixed_attachment_samples+ and
|
When the `VK_AMD_mixed_attachment_samples` and
|
||||||
+VK_NV_framebuffer_mixed_samples+ extensions are not enabled,
|
`VK_NV_framebuffer_mixed_samples` extensions are not enabled, if the subpass
|
||||||
if the subpass for which this pipeline is being created uses color and/or
|
for which this pipeline is being created uses color and/or depth/stencil
|
||||||
depth/stencil attachments, then pname:rasterizationSamples must: be the same
|
attachments, then pname:rasterizationSamples must: be the same as the sample
|
||||||
as the sample count for those subpass attachments.
|
count for those subpass attachments.
|
||||||
|
|
||||||
ifdef::VK_AMD_mixed_attachment_samples[]
|
ifdef::VK_AMD_mixed_attachment_samples[]
|
||||||
|
|
||||||
When the +VK_AMD_mixed_attachment_samples+ extension is enabled,
|
When the `VK_AMD_mixed_attachment_samples` extension is enabled, if the
|
||||||
if the subpass for which this pipeline is being created uses color and/or
|
subpass for which this pipeline is being created uses color and/or
|
||||||
depth/stencil attachments, then pname:rasterizationSamples must: be the same
|
depth/stencil attachments, then pname:rasterizationSamples must: be the same
|
||||||
as the maximum of the sample counts of those subpass attachments.
|
as the maximum of the sample counts of those subpass attachments.
|
||||||
|
|
||||||
|
@ -201,10 +201,10 @@ endif::VK_AMD_mixed_attachment_samples[]
|
||||||
|
|
||||||
ifdef::VK_NV_framebuffer_mixed_samples[]
|
ifdef::VK_NV_framebuffer_mixed_samples[]
|
||||||
|
|
||||||
When the +VK_NV_framebuffer_mixed_samples+ extension is enabled,
|
When the `VK_NV_framebuffer_mixed_samples` extension is enabled,
|
||||||
pname:rasterizationSamples must: match the sample count of the depth/stencil
|
pname:rasterizationSamples must: match the sample count of the depth/stencil
|
||||||
attachment if present, otherwise must: be greater than or equal to the sample
|
attachment if present, otherwise must: be greater than or equal to the
|
||||||
count of the color attachments, if present.
|
sample count of the color attachments, if present.
|
||||||
|
|
||||||
endif::VK_NV_framebuffer_mixed_samples[]
|
endif::VK_NV_framebuffer_mixed_samples[]
|
||||||
|
|
||||||
|
@ -1276,9 +1276,9 @@ If sample shading is enabled an implementation must: provide a minimum of
|
||||||
{rceil}, 1)# unique associated data for each fragment, where
|
{rceil}, 1)# unique associated data for each fragment, where
|
||||||
pname:minSampleShadingFactor is the minimum fraction of sample shading.
|
pname:minSampleShadingFactor is the minimum fraction of sample shading.
|
||||||
ifdef::VK_AMD_mixed_attachment_samples[]
|
ifdef::VK_AMD_mixed_attachment_samples[]
|
||||||
If the +VK_AMD_mixed_attachment_samples+ extension is enabled and the subpass
|
If the `VK_AMD_mixed_attachment_samples` extension is enabled and the
|
||||||
uses color attachments, pname:totalSamples is the number of samples of the
|
subpass uses color attachments, pname:totalSamples is the number of samples
|
||||||
color attachments.
|
of the color attachments.
|
||||||
Otherwise,
|
Otherwise,
|
||||||
endif::VK_AMD_mixed_attachment_samples[]
|
endif::VK_AMD_mixed_attachment_samples[]
|
||||||
pname:totalSamples is the value of
|
pname:totalSamples is the value of
|
||||||
|
|
|
@ -868,17 +868,17 @@ attachment.
|
||||||
ename:VK_ATTACHMENT_UNUSED must: have the same sample count
|
ename:VK_ATTACHMENT_UNUSED must: have the same sample count
|
||||||
ifdef::VK_AMD_mixed_attachment_samples[]
|
ifdef::VK_AMD_mixed_attachment_samples[]
|
||||||
* [[VUID-VkSubpassDescription-pColorAttachments-01506]]
|
* [[VUID-VkSubpassDescription-pColorAttachments-01506]]
|
||||||
If the +VK_AMD_mixed_attachment_samples+ extension is enabled, and
|
If the `VK_AMD_mixed_attachment_samples` extension is enabled, and all
|
||||||
all attachments in pname:pColorAttachments that are not
|
attachments in pname:pColorAttachments that are not
|
||||||
ename:VK_ATTACHMENT_UNUSED must: have a sample count that is smaller
|
ename:VK_ATTACHMENT_UNUSED must: have a sample count that is smaller
|
||||||
than or equal to the sample count of pname:pDepthStencilAttachment if it
|
than or equal to the sample count of pname:pDepthStencilAttachment if it
|
||||||
is not ename:VK_ATTACHMENT_UNUSED
|
is not ename:VK_ATTACHMENT_UNUSED
|
||||||
endif::VK_AMD_mixed_attachment_samples[]
|
endif::VK_AMD_mixed_attachment_samples[]
|
||||||
* [[VUID-VkSubpassDescription-pDepthStencilAttachment-01418]]
|
* [[VUID-VkSubpassDescription-pDepthStencilAttachment-01418]]
|
||||||
If neither the +VK_AMD_mixed_attachment_samples+ nor the
|
If neither the `VK_AMD_mixed_attachment_samples` nor the
|
||||||
+VK_NV_framebuffer_mixed_samples+ extensions are enabled, and if
|
`VK_NV_framebuffer_mixed_samples` extensions are enabled, and if
|
||||||
pname:pDepthStencilAttachment is not ename:VK_ATTACHMENT_UNUSED and
|
pname:pDepthStencilAttachment is not ename:VK_ATTACHMENT_UNUSED and any
|
||||||
any attachments in pname:pColorAttachments are not
|
attachments in pname:pColorAttachments are not
|
||||||
ename:VK_ATTACHMENT_UNUSED, they must: have the same sample count
|
ename:VK_ATTACHMENT_UNUSED, they must: have the same sample count
|
||||||
* [[VUID-VkSubpassDescription-None-00852]]
|
* [[VUID-VkSubpassDescription-None-00852]]
|
||||||
If any input attachments are ename:VK_ATTACHMENT_UNUSED, then any
|
If any input attachments are ename:VK_ATTACHMENT_UNUSED, then any
|
||||||
|
@ -1693,17 +1693,17 @@ corresponding subpass.
|
||||||
ename:VK_ATTACHMENT_UNUSED must: have the same sample count
|
ename:VK_ATTACHMENT_UNUSED must: have the same sample count
|
||||||
ifdef::VK_AMD_mixed_attachment_samples[]
|
ifdef::VK_AMD_mixed_attachment_samples[]
|
||||||
* [[VUID-VkSubpassDescription2KHR-pColorAttachments-03070]]
|
* [[VUID-VkSubpassDescription2KHR-pColorAttachments-03070]]
|
||||||
If the +VK_AMD_mixed_attachment_samples+ extension is enabled,
|
If the `VK_AMD_mixed_attachment_samples` extension is enabled, all
|
||||||
all attachments in pname:pColorAttachments that are not
|
attachments in pname:pColorAttachments that are not
|
||||||
ename:VK_ATTACHMENT_UNUSED must: have a sample count that is smaller
|
ename:VK_ATTACHMENT_UNUSED must: have a sample count that is smaller
|
||||||
than or equal to the sample count of pname:pDepthStencilAttachment if it
|
than or equal to the sample count of pname:pDepthStencilAttachment if it
|
||||||
is not ename:VK_ATTACHMENT_UNUSED
|
is not ename:VK_ATTACHMENT_UNUSED
|
||||||
endif::VK_AMD_mixed_attachment_samples[]
|
endif::VK_AMD_mixed_attachment_samples[]
|
||||||
* [[VUID-VkSubpassDescription2KHR-pDepthStencilAttachment-03071]]
|
* [[VUID-VkSubpassDescription2KHR-pDepthStencilAttachment-03071]]
|
||||||
If neither the +VK_AMD_mixed_attachment_samples+ nor the
|
If neither the `VK_AMD_mixed_attachment_samples` nor the
|
||||||
+VK_NV_framebuffer_mixed_samples+ extensions are enabled, and if
|
`VK_NV_framebuffer_mixed_samples` extensions are enabled, and if
|
||||||
pname:pDepthStencilAttachment is not ename:VK_ATTACHMENT_UNUSED and
|
pname:pDepthStencilAttachment is not ename:VK_ATTACHMENT_UNUSED and any
|
||||||
any attachments in pname:pColorAttachments are not
|
attachments in pname:pColorAttachments are not
|
||||||
ename:VK_ATTACHMENT_UNUSED, they must: have the same sample count
|
ename:VK_ATTACHMENT_UNUSED, they must: have the same sample count
|
||||||
* [[VUID-VkSubpassDescription2KHR-None-03072]]
|
* [[VUID-VkSubpassDescription2KHR-None-03072]]
|
||||||
If any input attachments are ename:VK_ATTACHMENT_UNUSED, then any
|
If any input attachments are ename:VK_ATTACHMENT_UNUSED, then any
|
||||||
|
|
|
@ -43,7 +43,7 @@ extern "C" {
|
||||||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||||
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
||||||
// Version of this file
|
// Version of this file
|
||||||
#define VK_HEADER_VERSION 89
|
#define VK_HEADER_VERSION 90
|
||||||
|
|
||||||
|
|
||||||
#define VK_NULL_HANDLE 0
|
#define VK_NULL_HANDLE 0
|
||||||
|
|
|
@ -33,7 +33,7 @@ place of the full word unless there is good reason not to.
|
||||||
When a number is part of an identifier, it is treated as a word if it is a
|
When a number is part of an identifier, it is treated as a word if it is a
|
||||||
standalone number, such as the extension name token
|
standalone number, such as the extension name token
|
||||||
ename:VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME for the
|
ename:VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME for the
|
||||||
+VK_KHR_get_memory_requirements2+ extension.
|
`VK_KHR_get_memory_requirements2` extension.
|
||||||
For uses where the number is part of a common abbreviation such as etext:2D
|
For uses where the number is part of a common abbreviation such as etext:2D
|
||||||
or etext:R8B8`, the entire abbreviation is treated as a word.
|
or etext:R8B8`, the entire abbreviation is treated as a word.
|
||||||
|
|
||||||
|
|
|
@ -150,7 +150,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> 89</type>
|
#define <name>VK_HEADER_VERSION</name> 90</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>
|
||||||
|
@ -10094,5 +10094,11 @@ server.
|
||||||
<enum value=""VK_INTEL_extension_243"" name="VK_INTEL_EXTENSION_243_EXTENSION_NAME"/>
|
<enum value=""VK_INTEL_extension_243"" name="VK_INTEL_EXTENSION_243_EXTENSION_NAME"/>
|
||||||
</require>
|
</require>
|
||||||
</extension>
|
</extension>
|
||||||
|
<extension name="VK_MESA_extension_244" number="244" author="MESA" contact="Andres Rodriguez @lostgoat" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_MESA_EXTENSION_244_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_MESA_extension_244"" name="VK_MESA_EXTENSION_244_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
</extensions>
|
</extensions>
|
||||||
</registry>
|
</registry>
|
||||||
|
|
Loading…
Reference in New Issue