Change log for May 13, 2019 Vulkan 1.1.108 spec update:
* Update release number to 108. Internal Issues: * Clarify that only external resources can be bound to external memory in valid usage statements for flink:vkBindBufferMemory, flink:vkBindImageMemory, slink:VkSparseMemoryBind, and slink:VkSparseImageMemoryBind (internal issue 1496). * Move all `vk.xml`requirements for flink:vkGetDeviceGroupSurfacePresentModes2EXT into `<<VK_EXT_full_screen_exclusive>>` (internal issue 1622). * Add some missing valid usage statements for flink:vkCmdEndQueryIndexedEXT (internal issue 1638). * Specify rules for defining "`New Flags and Bitmask Types`" in that section of the style guide (internal issue 1649). * Add a comment to the `vk.xml` extension block for `VK_ANDROID_native_buffer` explaining why the extension is tagged `"disabled"` (internal issue 1657). * Fix typos in the description of slink:VkImageViewCreateInfo (internal issue 1661). * Modify valid usage statements for slink:VkImageViewCreateInfo to fix the description about the restriction for pname:baseArrayLayer and pname:layerCount from pname:extent.depth to the depth of mipmap level while creating a 2D array image view on a 3D image. * Forbid structures that contain opaque types (images or samplers) in the SPIR-V <<spirvenv-module-validation, Validation Rules within a Module>> section. * Minor editorial changes for the `VK_EXT_swapchain_colorspace` extension in the description of slink:VkColorSpace KHR and `vk.xml`, including: ** Consistently specify which function (OETF or Inverse-EOTF) is being defined; ** Remove the Display P3 EOTF, since no other EOTFs are defined; ** Include luminance range for the HLG OETF; ** Remove a duplicated paragraph; and, ** Rename ename:VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, leaving the old ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT token as an alias. New Extensions: * `<<VK_NV_framebuffer_mixed_samples_coverage_reduction_mode>>` * `<<VK_KHR_uniform_buffer_standard_layout>>`
This commit is contained in:
parent
5abf83f95d
commit
40ba6e9a44
|
@ -8,6 +8,52 @@ public pull requests that have been accepted.
|
|||
|
||||
-----------------------------------------------------
|
||||
|
||||
Change log for May 13, 2019 Vulkan 1.1.108 spec update:
|
||||
|
||||
* Update release number to 108.
|
||||
|
||||
Internal Issues:
|
||||
|
||||
* Clarify that only external resources can be bound to external memory in
|
||||
valid usage statements for flink:vkBindBufferMemory,
|
||||
flink:vkBindImageMemory, slink:VkSparseMemoryBind, and
|
||||
slink:VkSparseImageMemoryBind (internal issue 1496).
|
||||
* Move all `vk.xml`requirements for
|
||||
flink:vkGetDeviceGroupSurfacePresentModes2EXT into
|
||||
`<<VK_EXT_full_screen_exclusive>>` (internal issue 1622).
|
||||
* Add some missing valid usage statements for
|
||||
flink:vkCmdEndQueryIndexedEXT (internal issue 1638).
|
||||
* Specify rules for defining "`New Flags and Bitmask Types`" in that
|
||||
section of the style guide (internal issue 1649).
|
||||
* Add a comment to the `vk.xml` extension block for
|
||||
`VK_ANDROID_native_buffer` explaining why the extension is tagged
|
||||
`"disabled"` (internal issue 1657).
|
||||
* Fix typos in the description of slink:VkImageViewCreateInfo (internal
|
||||
issue 1661).
|
||||
* Modify valid usage statements for slink:VkImageViewCreateInfo to fix the
|
||||
description about the restriction for pname:baseArrayLayer and
|
||||
pname:layerCount from pname:extent.depth to the depth of mipmap level
|
||||
while creating a 2D array image view on a 3D image.
|
||||
* Forbid structures that contain opaque types (images or samplers) in the
|
||||
SPIR-V <<spirvenv-module-validation, Validation Rules within a Module>>
|
||||
section.
|
||||
* Minor editorial changes for the `VK_EXT_swapchain_colorspace` extension
|
||||
in the description of slink:VkColorSpace KHR and `vk.xml`, including:
|
||||
** Consistently specify which function (OETF or Inverse-EOTF) is being
|
||||
defined;
|
||||
** Remove the Display P3 EOTF, since no other EOTFs are defined;
|
||||
** Include luminance range for the HLG OETF;
|
||||
** Remove a duplicated paragraph; and,
|
||||
** Rename ename:VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, leaving the old
|
||||
ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT token as an alias.
|
||||
|
||||
New Extensions:
|
||||
|
||||
* `<<VK_NV_framebuffer_mixed_samples_coverage_reduction_mode>>`
|
||||
* `<<VK_KHR_uniform_buffer_standard_layout>>`
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Change log for April 16, 2019 Vulkan 1.1.107 spec update:
|
||||
|
||||
* Update release number to 107.
|
||||
|
|
4
Makefile
4
Makefile
|
@ -70,7 +70,7 @@ allspecs: html pdf styleguide registry
|
|||
allman: manhtmlpages
|
||||
|
||||
allchecks:
|
||||
$(PYTHON) $(SCRIPTS)/check_spec_links.py -Werror
|
||||
$(PYTHON) $(SCRIPTS)/check_spec_links.py -Werror --ignore_count 0 -Wno_refpage_missing_desc -Wno_refpage_xrefs -Wno_refpage_name -Wno_refpage_unknown_attrib
|
||||
|
||||
# Note that the := assignments below are immediate, not deferred, and
|
||||
# are therefore order-dependent in the Makefile
|
||||
|
@ -121,7 +121,7 @@ VERBOSE =
|
|||
# ADOCOPTS options for asciidoc->HTML5 output
|
||||
|
||||
NOTEOPTS = -a editing-notes -a implementation-guide
|
||||
PATCHVERSION = 107
|
||||
PATCHVERSION = 108
|
||||
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
|
||||
SPECREVISION = 1.1.$(PATCHVERSION)
|
||||
else
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
include::meta/VK_EXT_swapchain_colorspace.txt[]
|
||||
|
||||
*Last Modified Date*::
|
||||
2017-03-15
|
||||
2019-04-26
|
||||
*IP Status*::
|
||||
No known IP claims.
|
||||
*Contributors*::
|
||||
|
@ -73,3 +73,8 @@ described by separate extension.
|
|||
|
||||
* Revision 3, 2017-06-23 (Courtney Goeltzenleuchter)
|
||||
- Add extended sRGB non-linear enum.
|
||||
|
||||
* Revision 4, 2019-04-26 (Graeme Leese)
|
||||
- Clarify colorspace transfer function usage.
|
||||
- Refer to normative definitions in the Data Format Specification.
|
||||
- Clarify DCI-P3 and Display P3 usage.
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
// Copyright (c) 2017-2019 Khronos Group. This work is licensed under a
|
||||
// Creative Commons Attribution 4.0 International License; see
|
||||
// http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
include::meta/VK_KHR_uniform_buffer_standard_layout.txt[]
|
||||
|
||||
*Last Modified Date*::
|
||||
2019-01-25
|
||||
*Contributors*::
|
||||
- Graeme Leese, Broadcom
|
||||
- Jeff Bolz, NVIDIA
|
||||
- Tobias Hector, AMD
|
||||
- Jason Ekstrand, Intel
|
||||
- Neil Henning, AMD
|
||||
|
||||
|
||||
=== Short Description
|
||||
|
||||
Enables tighter array and struct packing to be used with uniform buffers.
|
||||
|
||||
=== Description
|
||||
|
||||
This extension modifies the alignment rules for uniform buffers, allowing
|
||||
for tighter packing of arrays and structures.
|
||||
This allows, for example, the std430 layout, as defined in
|
||||
https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.60.pdf[GLSL]
|
||||
to be supported in uniform buffers.
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending elink:VkStructureType:
|
||||
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR
|
||||
|
||||
=== New Structures
|
||||
|
||||
* slink:VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR
|
||||
|
||||
=== Issues
|
||||
|
||||
None.
|
||||
|
||||
=== Version History
|
||||
|
||||
* Revision 1, 2019-01-25 (Graeme Leese)
|
||||
- Initial draft
|
|
@ -0,0 +1,73 @@
|
|||
include::meta/VK_NV_coverage_reduction_mode.txt[]
|
||||
|
||||
*Last Modified Date*::
|
||||
2019-01-29
|
||||
*Contributors*::
|
||||
- Kedarnath Thangudu, NVIDIA
|
||||
- Jeff Bolz, NVIDIA
|
||||
|
||||
When using a framebuffer with mixed samples, a per-fragment coverage
|
||||
reduction operation is performed which generates a color sample mask from
|
||||
the coverage mask.
|
||||
This extension defines the following modes to control how this reduction is
|
||||
performed.
|
||||
|
||||
* Merge: When there are more raster samples than color samples, there is
|
||||
an implementation dependent association of each raster sample to a color
|
||||
sample.
|
||||
In the merge mode, the reduced color sample mask is computed such that
|
||||
the bit for each color sample is 1 if any of the associated bits in the
|
||||
fragment’s coverage is on, and 0 otherwise.
|
||||
This is the default mode.
|
||||
|
||||
* Truncate: When there are more raster samples (N) than color samples(M),
|
||||
there is one to one association of the first M raster samples to the M
|
||||
color samples and the coverage bits for the other raster samples are
|
||||
ignored.
|
||||
|
||||
When the number of raster samples is equal to the color samples, there is a
|
||||
one to one mapping between them in either of the above modes.
|
||||
|
||||
The new command
|
||||
flink:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV can
|
||||
be used to query the various raster, color, depth/stencil sample count and
|
||||
reduction mode combinations that are supported by the implementation.
|
||||
This extension would allow an implementation to support the behavior of both
|
||||
`VK_NV_framebuffer_mixed_samples` and `VK_AMD_mixed_attachment_samples`
|
||||
extensions simultaneously.
|
||||
|
||||
|
||||
=== New Object Types
|
||||
|
||||
None.
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending elink:VkStructureType
|
||||
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
|
||||
** ename:VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
|
||||
** ename:VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
|
||||
|
||||
=== New Enums
|
||||
|
||||
* elink:VkCoverageReductionModeNV
|
||||
* tlink:VkPipelineCoverageReductionStateCreateFlagsNV
|
||||
|
||||
=== New Structures
|
||||
|
||||
* slink:VkPhysicalDeviceCoverageReductionModeFeaturesNV
|
||||
* slink:VkPipelineCoverageReductionStateCreateInfoNV
|
||||
* slink:VkFramebufferMixedSamplesCombinationNV
|
||||
|
||||
=== New Functions
|
||||
|
||||
* flink:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
|
||||
|
||||
=== Issues
|
||||
|
||||
None.
|
||||
|
||||
=== Version History
|
||||
|
||||
* Revision 1, 2019-01-29 (Kedarnath Thangudu)
|
||||
- Internal revisions
|
|
@ -615,6 +615,7 @@ endif::VK_KHR_shader_float16_int8+!VK_KHR_16bit_storage[]
|
|||
** Objects of types code:OpTypeImage, code:OpTypeSampler,
|
||||
code:OpTypeSampledImage, and arrays of these types must: not be stored
|
||||
to or modified.
|
||||
* Structure types must: not contain opaque types.
|
||||
* Decorations
|
||||
** Any code:BuiltIn decoration not listed in
|
||||
<<interfaces-builtin-variables>> must: not be used.
|
||||
|
|
|
@ -915,34 +915,37 @@ include::{generated}/api/enums/VkColorSpaceKHR.txt[]
|
|||
color space.
|
||||
ifdef::VK_EXT_swapchain_colorspace[]
|
||||
* ename:VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT specifies support for the
|
||||
Display-P3 color space and applies an sRGB-like transfer function
|
||||
(defined below).
|
||||
Display-P3 color space to be displayed using an sRGB-like EOTF (defined
|
||||
below).
|
||||
* ename:VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT specifies support for the
|
||||
extended sRGB color space and applies a linear transfer function.
|
||||
extended sRGB color space to be displayed using a linear EOTF.
|
||||
* ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT specifies support for
|
||||
the extended sRGB color space and applies an sRGB transfer function.
|
||||
* ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT specifies support for the DCI-P3
|
||||
color space and applies a linear OETF.
|
||||
the extended sRGB color space to be displayed using an sRGB EOTF.
|
||||
* ename:VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT specifies support for the
|
||||
Display-P3 color space to be displayed using a linear EOTF.
|
||||
* ename:VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT specifies support for the
|
||||
DCI-P3 color space and applies the Gamma 2.6 OETF.
|
||||
DCI-P3 color space to be displayed using the DCI-P3 EOTF.
|
||||
Note that values in such an image are interpreted as XYZ encoded color
|
||||
data by the presentation engine.
|
||||
* ename:VK_COLOR_SPACE_BT709_LINEAR_EXT specifies support for the BT709
|
||||
color space and applies a linear OETF.
|
||||
color space to be displayed using a linear EOTF.
|
||||
* ename:VK_COLOR_SPACE_BT709_NONLINEAR_EXT specifies support for the BT709
|
||||
color space and applies the SMPTE 170M OETF.
|
||||
color space to be displayed using the SMPTE 170M EOTF.
|
||||
* ename:VK_COLOR_SPACE_BT2020_LINEAR_EXT specifies support for the BT2020
|
||||
color space and applies a linear OETF.
|
||||
color space to be displayed using a linear EOTF.
|
||||
* ename:VK_COLOR_SPACE_HDR10_ST2084_EXT specifies support for the HDR10
|
||||
(BT2020 color) space and applies the SMPTE ST2084 Perceptual Quantizer
|
||||
(PQ) OETF.
|
||||
(BT2020 color) space to be displayed using the SMPTE ST2084 Perceptual
|
||||
Quantizer (PQ) EOTF.
|
||||
* ename:VK_COLOR_SPACE_DOLBYVISION_EXT specifies support for the Dolby
|
||||
Vision (BT2020 color space), proprietary encoding, and applies the SMPTE
|
||||
ST2084 OETF.
|
||||
Vision (BT2020 color space), proprietary encoding, to be displayed using
|
||||
the SMPTE ST2084 EOTF.
|
||||
* ename:VK_COLOR_SPACE_HDR10_HLG_EXT specifies support for the HDR10
|
||||
(BT2020 color space) and applies the Hybrid Log Gamma (HLG) OETF.
|
||||
(BT2020 color space) to be displayed using the Hybrid Log Gamma (HLG)
|
||||
EOTF.
|
||||
* ename:VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT specifies support for the
|
||||
AdobeRGB color space and applies a linear OETF.
|
||||
AdobeRGB color space to be displayed using a linear EOTF.
|
||||
* ename:VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT specifies support for the
|
||||
AdobeRGB color space and applies the Gamma 2.2 OETF.
|
||||
AdobeRGB color space to be displayed using the Gamma 2.2 EOTF.
|
||||
* ename:VK_COLOR_SPACE_PASS_THROUGH_EXT specifies that color components
|
||||
are used "`as is`".
|
||||
This is intended to allow applications to supply data for color spaces
|
||||
|
@ -954,13 +957,24 @@ ifdef::VK_AMD_display_native_hdr[]
|
|||
for displays supporting it.
|
||||
endif::VK_AMD_display_native_hdr[]
|
||||
|
||||
The color components of Non-linear color space swap chain images have had
|
||||
the appropriate transfer function applied.
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
In older versions of this extension
|
||||
ename:VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT was misnamed
|
||||
ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT.
|
||||
This has been updated to indicate that it uses RGB color encoding, not XYZ.
|
||||
The old name is deprecated but is maintained for backwards compatibility.
|
||||
====
|
||||
|
||||
The color components of non-linear color space swap chain images must: have
|
||||
had the appropriate transfer function applied.
|
||||
The color space selected for the swap chain image will not affect the
|
||||
processing of data written into the image by the implementation.
|
||||
Vulkan requires that all implementations support the sRGB transfer function
|
||||
when using an SRGB pixel format.
|
||||
Other transfer functions, such as SMPTE 170M or SMPTE2084, must: not be
|
||||
performed by the implementation, but can: be performed by the application
|
||||
shader.
|
||||
by use of an SRGB pixel format.
|
||||
Other transfer functions, such as SMPTE 170M or SMPTE2084, can: be performed
|
||||
by the application shader.
|
||||
This extension defines enums for elink:VkColorSpaceKHR that correspond to
|
||||
the following color spaces:
|
||||
|
||||
|
@ -968,25 +982,20 @@ the following color spaces:
|
|||
.Color Spaces and Attributes
|
||||
[options="header"]
|
||||
|====
|
||||
| Name | Red Primary | Green Primary | Blue Primary | White-point | Transfer function
|
||||
| DCI-P3 | 0.680, 0.320 | 0.265, 0.690 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | Gamma 2.6
|
||||
| Name | Red Primary | Green Primary | Blue Primary | White-point | Transfer function
|
||||
| DCI-P3 | 1.000, 0.000 | 0.000, 1.000 | 0.000, 0.000 | 0.3333, 0.3333 | DCI P3
|
||||
| Display-P3 | 0.680, 0.320 | 0.265, 0.690 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | Display-P3
|
||||
| BT709 | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | SMPTE 170M
|
||||
| BT709 | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | ITU (SMPTE 170M)
|
||||
| sRGB | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | sRGB
|
||||
| extended sRGB | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | extended sRGB
|
||||
| HDR10_ST2084 | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | ST2084
|
||||
| DOLBYVISION | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | ST2084
|
||||
| HDR10_ST2084 | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | ST2084 PQ
|
||||
| DOLBYVISION | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | ST2084 PQ
|
||||
| HDR10_HLG | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | HLG
|
||||
| AdobeRGB | 0.640, 0.330 | 0.210, 0.710 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | AdobeRGB
|
||||
|====
|
||||
|
||||
For Opto-Electrical Transfer Function (OETF), unless otherwise specified,
|
||||
the values of [eq]#L# and [eq]#E# are defined as:
|
||||
|
||||
[eq]#L# - linear luminance of image latexmath:[0 \leq L \leq 1] for
|
||||
conventional colorimetry
|
||||
|
||||
[eq]#E# - corresponding electrical signal (value stored in memory)
|
||||
The transfer functions are described in the "Tranfer Functions" chapter of
|
||||
the <<data-format,Khronos Data Format Specification>>.
|
||||
|
||||
// @@@ The ref page is ended earlier than in the original markup due to
|
||||
// asciidoctor issues described in internal MR 2201.
|
||||
|
@ -996,38 +1005,6 @@ endif::VK_EXT_swapchain_colorspace[]
|
|||
|
||||
ifdef::VK_EXT_swapchain_colorspace[]
|
||||
|
||||
=== sRGB transfer function
|
||||
|
||||
[latexmath]
|
||||
+++++++++++++++++++
|
||||
\begin{aligned}
|
||||
E & =
|
||||
\begin{cases}
|
||||
1.055 \times L^{1 \over 2.4} - 0.055 & \text{for}\ 0.0031308 \leq L \leq 1 \\
|
||||
12.92 \times L & \text{for}\ 0 \leq L < 0.0031308
|
||||
\end{cases}
|
||||
\end{aligned}
|
||||
+++++++++++++++++++
|
||||
|
||||
|
||||
=== Display-P3 EOTF
|
||||
|
||||
[latexmath]
|
||||
+++++++++++++++++++
|
||||
\begin{aligned}
|
||||
E & =
|
||||
\begin{cases}
|
||||
(a \times L + b)^{2.4} & \text{for}\ 0.039 \leq L \leq 1 \\
|
||||
b \times L & \text{for}\ 0 \leq L < 0.039
|
||||
\end{cases}
|
||||
\end{aligned}
|
||||
+++++++++++++++++++
|
||||
|
||||
latexmath:[a = 0.948] +
|
||||
latexmath:[b = 0.052] +
|
||||
latexmath:[c = 0.077] +
|
||||
|
||||
|
||||
=== Display-P3 OETF
|
||||
|
||||
[latexmath]
|
||||
|
@ -1041,6 +1018,9 @@ E & =
|
|||
\end{aligned}
|
||||
+++++++++++++++++++
|
||||
|
||||
where [eq]#L# is the linear value of a color channel and [eq]#E# is the
|
||||
encoded value (as stored in the image in memory).
|
||||
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
|
@ -1048,93 +1028,6 @@ For most uses, the sRGB OETF is equivalent.
|
|||
====
|
||||
|
||||
|
||||
=== Extended sRGB OETF
|
||||
|
||||
[latexmath]
|
||||
+++++++++++++++++++
|
||||
\begin{aligned}
|
||||
E & =
|
||||
\begin{cases}
|
||||
1.055 \times L^{1 \over 2.4} - 0.055 & \text{for}\ 0.0031308 \leq L \leq 7.5913 \\
|
||||
12.92 \times L & \text{for}\ 0 \leq L < 0.0031308 \\
|
||||
-f(-L) & \text{for}\ L < 0
|
||||
\end{cases}
|
||||
\end{aligned}
|
||||
+++++++++++++++++++
|
||||
|
||||
[eq]#L# - luminance of image is within [eq]#[-0.6038, 7.5913]#.
|
||||
|
||||
[eq]#E# can be negative and/or > 1.
|
||||
That is how extended sRGB specifies colors outside the standard sRGB gamut.
|
||||
This means extended sRGB needs a floating point pixel format to cover the
|
||||
intended color range.
|
||||
|
||||
|
||||
=== SMPTE 170M OETF
|
||||
|
||||
[latexmath]
|
||||
+++++++++++++++++++
|
||||
\begin{aligned}
|
||||
E & =
|
||||
\begin{cases}
|
||||
\alpha \times L^{0.45} - (1 - \alpha) & \text{for}\ \beta \leq L \leq 1 \\
|
||||
4.5 \times L & \text{for}\ 0 \leq L < \beta
|
||||
\end{cases}
|
||||
\end{aligned}
|
||||
+++++++++++++++++++
|
||||
|
||||
latexmath:[\alpha = 1.099 \text{ and } \beta = 0.018 \text{ for 10-bits and
|
||||
less per sample system (the values given in Rec.
|
||||
709)}] +
|
||||
latexmath:[\alpha = 1.0993 \text{ and } \beta = 0.0181 \text{ for 12-bits
|
||||
per sample system}]
|
||||
|
||||
|
||||
=== SMPTE ST2084 OETF (Inverse-EOTF)
|
||||
|
||||
[latexmath]
|
||||
+++++++++++++++++++
|
||||
\[
|
||||
E = (\frac{c_1 + c_2 \times L^{m_1}}{1 + c_3 \times L^{m_1}})^{m_2}
|
||||
\]
|
||||
+++++++++++++++++++
|
||||
|
||||
where:
|
||||
|
||||
latexmath:[m_1 = 2610 / 4096 \times \frac{1}{4} = 0.1593017578125] +
|
||||
latexmath:[m_2 = 2523 / 4096 \times 128 = 78.84375] +
|
||||
latexmath:[c_1 = 3424 / 4096 = 0.8359375 = c3 - c2 + 1] +
|
||||
latexmath:[c_2 = 2413 / 4096 \times 32 = 18.8515625] +
|
||||
latexmath:[c_3 = 2392 / 4096 \times 32 = 18.6875] +
|
||||
|
||||
|
||||
=== Hybrid Log Gamma (HLG)
|
||||
|
||||
[latexmath]
|
||||
+++++++++++++++++++
|
||||
\begin{aligned}
|
||||
E & =
|
||||
\begin{cases}
|
||||
r \sqrt{L} & \text{for}\ 0 \leq L \leq 1 \\
|
||||
a \times \ln(L - b) + c & \text{for}\ 1 < L
|
||||
\end{cases}
|
||||
\end{aligned}
|
||||
+++++++++++++++++++
|
||||
|
||||
[eq]#_L_# -- is the signal normalized by the reference white level +
|
||||
[eq]#_r_# -- is the reference white level and has a signal value of 0.5 +
|
||||
[eq]#_a_ = 0.17883277# and [eq]#_b_ = 0.28466892# and [eq]#_c_ = 0.55991073#
|
||||
|
||||
|
||||
=== Adobe RGB (1998) OETF
|
||||
|
||||
latexmath:[E = L^\frac{1}{2.19921875}]
|
||||
|
||||
|
||||
=== Gamma 2.6 OETF
|
||||
|
||||
latexmath:[E = L^\frac{1}{2.6}]
|
||||
|
||||
An implementation supporting this extension indicates support for these
|
||||
color spaces via slink:VkSurfaceFormatKHR structures returned from
|
||||
flink:vkGetPhysicalDeviceSurfaceFormatsKHR.
|
||||
|
@ -1142,12 +1035,6 @@ flink:vkGetPhysicalDeviceSurfaceFormatsKHR.
|
|||
Specifying the supported surface color space when calling
|
||||
flink:vkCreateSwapchainKHR will create a swapchain using that color space.
|
||||
|
||||
Vulkan requires that all implementations support the sRGB Opto-Electrical
|
||||
Transfer Function (OETF) and Electro-optical transfer function (EOTF) when
|
||||
using an SRGB pixel format.
|
||||
Other transfer functions, such as SMPTE 170M, must: not be performed by the
|
||||
implementation, but can: be performed by the application shader.
|
||||
|
||||
endif::VK_EXT_swapchain_colorspace[]
|
||||
|
||||
If pname:pSurfaceFormats includes an entry whose value for pname:colorSpace
|
||||
|
|
|
@ -1829,6 +1829,38 @@ include::{generated}/validity/structs/VkPhysicalDeviceScalarBlockLayoutFeaturesE
|
|||
|
||||
endif::VK_EXT_scalar_block_layout[]
|
||||
|
||||
ifdef::VK_KHR_uniform_buffer_standard_layout[]
|
||||
|
||||
[open,refpage='VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR',desc='Structure indicating support for std430-like packing in uniform buffers',type='structs']
|
||||
--
|
||||
The sname:VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR structure
|
||||
is defined as:
|
||||
|
||||
include::{generated}/api/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR.txt[]
|
||||
|
||||
The members of the
|
||||
sname:VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR structure
|
||||
describe the following features:
|
||||
|
||||
* [[features-uniformBufferStandardLayout]]
|
||||
pname:uniformBufferStandardLayout indicates that the implementation
|
||||
supports the same layouts for uniform buffers as for storage and other
|
||||
kinds of buffers.
|
||||
See <<interfaces-resources-standard-layout,Standard Buffer Layout>>.
|
||||
|
||||
If the sname:VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR
|
||||
structure is included in the pname:pNext chain of
|
||||
slink:VkPhysicalDeviceFeatures2KHR, it is filled with values indicating
|
||||
whether the feature is supported.
|
||||
sname:VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR can: also be
|
||||
used in the pname:pNext chain of slink:VkDeviceCreateInfo to enable this
|
||||
feature.
|
||||
|
||||
include::{generated}/validity/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR.txt[]
|
||||
--
|
||||
|
||||
endif::VK_KHR_uniform_buffer_standard_layout[]
|
||||
|
||||
ifdef::VK_EXT_depth_clip_enable[]
|
||||
|
||||
[open,refpage='VkPhysicalDeviceDepthClipEnableFeaturesEXT',desc='Structure indicating support for explicit enable of depth clip',type='structs']
|
||||
|
@ -2051,6 +2083,31 @@ include::{generated}/validity/structs/VkPhysicalDeviceHostQueryResetFeaturesEXT.
|
|||
endif::VK_EXT_host_query_reset[]
|
||||
|
||||
|
||||
ifdef::VK_NV_coverage_reduction_mode[]
|
||||
[open,refpage='VkPhysicalDeviceCoverageReductionModeFeaturesNV',desc='Structure describing the coverage reduction mode features that can be supported by an implementation',type='structs']
|
||||
--
|
||||
The sname:VkPhysicalDeviceCoverageReductionModeFeaturesNV structure is
|
||||
defined as:
|
||||
|
||||
include::{generated}/api/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.txt[]
|
||||
|
||||
The members of the sname:VkPhysicalDeviceCoverageReductionModeFeaturesNV
|
||||
structure describe the following features:
|
||||
|
||||
* [[features-features-coverageReductionMode]] pname:coverageReductionMode
|
||||
indicates whether the implementation supports coverage reduction modes.
|
||||
See <<fragops-coverage-reduction, Coverage Reduction>>.
|
||||
|
||||
If the sname:VkPhysicalDeviceCoverageReductionModeFeaturesNV structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR, it
|
||||
is filled with values indicating whether the feature is supported.
|
||||
sname:VkPhysicalDeviceCoverageReductionModeFeaturesNV can: also be used in
|
||||
the pname:pNext chain of slink:VkDeviceCreateInfo to enable the feature.
|
||||
|
||||
include::{generated}/validity/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.txt[]
|
||||
--
|
||||
endif::VK_NV_coverage_reduction_mode[]
|
||||
|
||||
[[features-requirements]]
|
||||
== Feature Requirements
|
||||
|
||||
|
@ -2060,6 +2117,9 @@ All Vulkan graphics implementations must: support the following features:
|
|||
ifdef::VK_VERSION_1_1[]
|
||||
* <<features-multiview, pname:multiview>>
|
||||
endif::VK_VERSION_1_1[]
|
||||
ifdef::VK_KHR_uniform_buffer_standard_layout[]
|
||||
* <<features-uniformBufferStandardLayout,pname:uniformBufferStandardLayout>>
|
||||
endif::VK_KHR_uniform_buffer_standard_layout[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[]
|
||||
* <<features-variablePointersStorageBuffer,
|
||||
pname:variablePointersStorageBuffer>>, if the
|
||||
|
|
|
@ -1282,6 +1282,7 @@ endif::VK_EXT_fragment_density_map[]
|
|||
|
||||
ifdef::VK_NV_framebuffer_mixed_samples[]
|
||||
|
||||
ifndef::VK_NV_coverage_reduction_mode[]
|
||||
When the `VK_NV_framebuffer_mixed_samples` extension is enabled, if the
|
||||
pipeline's
|
||||
slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples is
|
||||
|
@ -1301,6 +1302,143 @@ samples.
|
|||
The reduced color sample mask is computed such that the bit for each color
|
||||
sample is 1 if any of the associated bits in the fragment's coverage is on,
|
||||
and 0 otherwise.
|
||||
endif::VK_NV_coverage_reduction_mode[]
|
||||
|
||||
ifdef::VK_NV_coverage_reduction_mode[]
|
||||
[open,refpage='VkPipelineCoverageReductionStateCreateInfoNV',desc='Structure specifying parameters controlling coverage reduction',type='structs']
|
||||
--
|
||||
|
||||
If the pipeline's
|
||||
slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples is
|
||||
greater than the slink:VkAttachmentDescription::pname:samples of the color
|
||||
attachments in the subpass, then the fragment's coverage is reduced from
|
||||
pname:rasterizationSamples bits to a color sample mask with
|
||||
slink:VkAttachmentDescription::pname:samples bits.
|
||||
|
||||
When the `VK_NV_coverage_reduction_mode` extension is enabled, the pipeline
|
||||
state controlling coverage reduction is specified through the members of the
|
||||
sname:VkPipelineCoverageReductionStateCreateInfoNV structure.
|
||||
|
||||
The sname:VkPipelineCoverageReductionStateCreateInfoNV structure is defined
|
||||
as:
|
||||
|
||||
include::{generated}/api/structs/VkPipelineCoverageReductionStateCreateInfoNV.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:flags is reserved for future use.
|
||||
* pname:coverageReductionMode controls how the _color sample mask_ is
|
||||
generated from the coverage mask and is of type
|
||||
elink:VkCoverageReductionModeNV.
|
||||
|
||||
If this structure is not present, the default coverage reduction mode is
|
||||
inferred as follows:
|
||||
|
||||
* If the `VK_NV_framebuffer_mixed_samples` extension is enabled, then it
|
||||
is as if the pname:coverageReductionMode is
|
||||
ename:VK_COVERAGE_REDUCTION_MODE_MERGE_NV.
|
||||
* If the `VK_AMD_mixed_attachment_samples` extension is enabled, then it
|
||||
is as if the pname:coverageReductionMode is
|
||||
ename:VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV.
|
||||
* If both `VK_NV_framebuffer_mixed_samples` and
|
||||
`VK_AMD_mixed_attachment_samples` are enabled, then the default coverage
|
||||
reduction mode is implementation-dependent.
|
||||
|
||||
include::{generated}/validity/structs/VkPipelineCoverageReductionStateCreateInfoNV.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkPipelineCoverageReductionStateCreateFlagsNV',desc='Reserved for future use',type='flags']
|
||||
--
|
||||
include::{generated}/api/flags/VkPipelineCoverageReductionStateCreateFlagsNV.txt[]
|
||||
|
||||
tname:VkPipelineCoverageReductionStateCreateFlagsNV is a bitmask type for
|
||||
setting a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
[open,refpage='VkCoverageReductionModeNV',desc='Specify the coverage reduction mode',type='enums']
|
||||
--
|
||||
Possible values of
|
||||
slink:VkPipelineCoverageReductionStateCreateInfoNV::pname:coverageReductionMode,
|
||||
specifying how the coverage mask is reduced to _color sample mask_, are:
|
||||
|
||||
include::{generated}/api/enums/VkCoverageReductionModeNV.txt[]
|
||||
|
||||
* ename:VK_COVERAGE_REDUCTION_MODE_MERGE_NV: In this mode, there is an
|
||||
implementation-dependent association of each raster sample to a color
|
||||
sample.
|
||||
The reduced color sample mask is computed such that the bit for each
|
||||
color sample is 1 if any of the associated bits in the fragment's
|
||||
coverage is on, and 0 otherwise.
|
||||
* ename:VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV: In this mode, only the
|
||||
first [eq]#M# raster samples are associated with the color samples such
|
||||
that raster sample [eq]#i# maps to color sample [eq]#i#, where [eq]#M#
|
||||
is the number of color samples.
|
||||
--
|
||||
|
||||
If the `VK_NV_coverage_reduction_mode` extension is not enabled, there is an
|
||||
implementation-dependent association of raster samples to color samples.
|
||||
The reduced color sample mask is computed such that the bit for each color
|
||||
sample is 1 if any of the associated bits in the fragment's coverage is on,
|
||||
and 0 otherwise.
|
||||
|
||||
[open,refpage='vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV',desc='Query supported sample count combinations',type='protos']
|
||||
--
|
||||
|
||||
To query the set of mixed sample combinations of coverage reduction mode,
|
||||
rasterization samples and color, depth, stencil attachment sample counts
|
||||
that are supported by a physical device, call:
|
||||
|
||||
include::{generated}/api/protos/vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.txt[]
|
||||
|
||||
* pname:physicalDevice is the physical device from which to query the set
|
||||
of combinations.
|
||||
* pname:pCombinationCount is a pointer to an integer related to the number
|
||||
of combinations available or queried, as described below.
|
||||
* pname:pCombinations is either `NULL` or a pointer to an array of
|
||||
slink:VkFramebufferMixedSamplesCombinationNV values, indicating the
|
||||
supported combinations of coverage reduction mode, rasterization
|
||||
samples, and color, depth, stencil attachment sample counts.
|
||||
|
||||
If pname:pCombinations is `NULL`, then the number of supported combinations
|
||||
for the given pname:physicalDevice is returned in pname:pCombinationCount.
|
||||
Otherwise, pname:pCombinationCount must: point to a variable set by the user
|
||||
to the number of elements in the pname:pCombinations array, and on return
|
||||
the variable is overwritten with the number of values actually written to
|
||||
pname:pCombinations.
|
||||
If the value of pname:pCombinationCount is less than the number of
|
||||
combinations supported for the given pname:physicalDevice, at most
|
||||
pname:pCombinationCount values will be written pname:pCombinations and
|
||||
ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS to indicate
|
||||
that not all the supported values were returned.
|
||||
|
||||
include::{generated}/validity/protos/vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkFramebufferMixedSamplesCombinationNV',desc='Structure specifying a supported sample count combination',type='structs']
|
||||
--
|
||||
|
||||
The sname:VkFramebufferMixedSamplesCombinationNV structure is defined as:
|
||||
|
||||
include::{generated}/api/structs/VkFramebufferMixedSamplesCombinationNV.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:coverageReductionMode specifies the coverage reduction mode and is
|
||||
of type elink:VkCoverageReductionModeNV.
|
||||
* pname:rasterizationSamples specifies the number of rasterization samples
|
||||
in the supported combination.
|
||||
* pname:depthStencilSamples specifies the number of samples in the depth
|
||||
stencil attachment in the supported combination.
|
||||
A value of 0 indicates the combination does not have a depth stencil
|
||||
attachment.
|
||||
* pname:colorSamples specifies the number of color samples in a color
|
||||
attachment in the supported combination.
|
||||
A value of 0 indicates the combination does not have a color attachment.
|
||||
|
||||
include::{generated}/validity/structs/VkFramebufferMixedSamplesCombinationNV.txt[]
|
||||
--
|
||||
|
||||
endif::VK_NV_coverage_reduction_mode[]
|
||||
|
||||
[[fragops-coverage-modulation]]
|
||||
=== Coverage Modulation
|
||||
|
@ -1312,7 +1450,7 @@ As part of coverage reduction, fragment color values can: also be modulated
|
|||
(multiplied) by a value that is a function of fraction of covered
|
||||
rasterization samples associated with that color sample.
|
||||
|
||||
Pipeline state controlling coverage reduction is specified through the
|
||||
Pipeline state controlling coverage modulation is specified through the
|
||||
members of the sname:VkPipelineCoverageModulationStateCreateInfoNV
|
||||
structure.
|
||||
|
||||
|
@ -1390,7 +1528,7 @@ tname:VkPipelineCoverageModulationStateCreateFlagsNV is a bitmask type for
|
|||
setting a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
[open,refpage='VkCoverageModulationModeNV',desc='Specify the discard rectangle mode',type='enums']
|
||||
[open,refpage='VkCoverageModulationModeNV',desc='Specify the coverage modulation mode',type='enums']
|
||||
--
|
||||
Possible values of
|
||||
slink:VkPipelineCoverageModulationStateCreateInfoNV::pname:coverageModulationMode,
|
||||
|
|
|
@ -927,8 +927,8 @@ declaration order.
|
|||
There are different alignment requirements depending on the specific
|
||||
resources and on the features enabled on the device.
|
||||
|
||||
The _scalar alignment_ of the type of an code:OpTypeStruct member of is
|
||||
defined recursively as follows:
|
||||
The _scalar alignment_ of the type of an code:OpTypeStruct member is defined
|
||||
recursively as follows:
|
||||
|
||||
* A scalar of size [eq]#N# has a scalar alignment of [eq]#N#.
|
||||
* A vector or matrix type has a scalar alignment equal to that of its
|
||||
|
@ -991,7 +991,14 @@ endif::VK_EXT_scalar_block_layout[]
|
|||
ifdef::VK_VERSION_1_1,VK_KHR_relaxed_block_layout[]
|
||||
. All vectors must: be aligned according to their scalar alignment.
|
||||
endif::VK_VERSION_1_1,VK_KHR_relaxed_block_layout[]
|
||||
. Any member of an code:OpTypeStruct with a storage class of code:Uniform and a
|
||||
ifdef::VK_KHR_uniform_buffer_standard_layout[]
|
||||
. If the pname:uniformBufferStandardLayout feature is not enabled on the
|
||||
device, then any
|
||||
endif::VK_KHR_uniform_buffer_standard_layout[]
|
||||
ifndef::VK_KHR_uniform_buffer_standard_layout[]
|
||||
. Any
|
||||
endif::VK_KHR_uniform_buffer_standard_layout[]
|
||||
member of an code:OpTypeStruct with a storage class of code:Uniform and a
|
||||
decoration of code:Block must: be aligned according to its extended
|
||||
alignment.
|
||||
. Every other member must: be aligned according to its base alignment.
|
||||
|
|
|
@ -876,6 +876,16 @@ ifdef::VK_NV_framebuffer_mixed_samples[]
|
|||
pname:rasterizationSamples member of pname:pMultisampleState must: be
|
||||
greater than or equal to the sample count for those subpass attachments
|
||||
endif::VK_NV_framebuffer_mixed_samples[]
|
||||
ifdef::VK_NV_coverage_reduction_mode[]
|
||||
* [[VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722]]
|
||||
If the `VK_NV_coverage_reduction_mode` extension is enabled, the
|
||||
coverage reduction mode specified by
|
||||
slink:VkPipelineCoverageReductionStateCreateInfoNV::pname:coverageReductionMode,
|
||||
the pname:rasterizationSamples member of pname:pMultisampleState and the
|
||||
sample counts for the color and depth/stencil attachments (if the
|
||||
subpass has them) must: be a valid combination returned by
|
||||
fname:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
|
||||
endif::VK_NV_coverage_reduction_mode[]
|
||||
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-00758]]
|
||||
If pname:subpass does not use any color and/or depth/stencil
|
||||
attachments, then the pname:rasterizationSamples member of
|
||||
|
|
|
@ -253,6 +253,18 @@ sample count of the color attachments, if present.
|
|||
|
||||
endif::VK_NV_framebuffer_mixed_samples[]
|
||||
|
||||
ifdef::VK_NV_coverage_reduction_mode[]
|
||||
|
||||
If the `VK_NV_coverage_reduction_mode` extension is enabled, the coverage
|
||||
reduction mode specified by
|
||||
slink:VkPipelineCoverageReductionStateCreateInfoNV::pname:coverageReductionMode,
|
||||
the pname:rasterizationSamples member of pname:pMultisampleState and the
|
||||
sample counts for the color and depth/stencil attachments (if present) must:
|
||||
be a valid combination returned by
|
||||
fname:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
|
||||
|
||||
endif::VK_NV_coverage_reduction_mode[]
|
||||
|
||||
If the subpass for which this pipeline is being created does not use color
|
||||
or depth/stencil attachments, pname:rasterizationSamples must: follow the
|
||||
rules for a <<renderpass-noattachments, zero-attachment subpass>>.
|
||||
|
|
|
@ -148,12 +148,17 @@ endif::VK_EXT_transform_feedback[]
|
|||
--
|
||||
|
||||
|
||||
|
||||
[[queries-operation]]
|
||||
== Query Operation
|
||||
|
||||
The operation of queries is controlled by the commands
|
||||
flink:vkCmdBeginQuery, flink:vkCmdEndQuery, flink:vkCmdResetQueryPool,
|
||||
flink:vkCmdCopyQueryPoolResults, and flink:vkCmdWriteTimestamp.
|
||||
flink:vkCmdBeginQuery, flink:vkCmdEndQuery,
|
||||
ifdef::VK_EXT_transform_feedback[]
|
||||
flink:vkCmdBeginQueryIndexedEXT, flink:vkCmdEndQueryIndexedEXT,
|
||||
endif::VK_EXT_transform_feedback[]
|
||||
flink:vkCmdResetQueryPool, flink:vkCmdCopyQueryPoolResults, and
|
||||
flink:vkCmdWriteTimestamp.
|
||||
|
||||
In order for a sname:VkCommandBuffer to record query management commands,
|
||||
the queue family for which its sname:VkCommandPool was created must: support
|
||||
|
@ -586,10 +591,10 @@ ifdef::VK_VERSION_1_1[]
|
|||
endif::VK_VERSION_1_1[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
|
||||
* [[VUID-vkCmdEndQueryIndexedEXT-query-02345]]
|
||||
If fname:vkCmdEndQuery is called within a render pass instance, the sum
|
||||
of pname:query and the number of bits set in the current subpass's view
|
||||
mask must: be less than or equal to the number of queries in
|
||||
pname:queryPool
|
||||
If fname:vkCmdEndQueryIndexedEXT is called within a render pass
|
||||
instance, the sum of pname:query and the number of bits set in the
|
||||
current subpass's view mask must: be less than or equal to the number of
|
||||
queries in pname:queryPool
|
||||
endif::VK_VERSION_1_1,VK_KHR_multiview[]
|
||||
* [[VUID-vkCmdEndQueryIndexedEXT-queryType-02346]]
|
||||
If the pname:queryType used to create pname:queryPool was
|
||||
|
@ -600,6 +605,11 @@ endif::VK_VERSION_1_1,VK_KHR_multiview[]
|
|||
If the pname:queryType used to create pname:queryPool was not
|
||||
ename:VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the pname:index must:
|
||||
be zero
|
||||
* [[VUID-vkCmdEndQueryIndexedEXT-queryType-02723]]
|
||||
If the pname:queryType used to create pname:queryPool was
|
||||
ename:VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT pname:index must:
|
||||
equal the pname:index used to begin the query
|
||||
|
||||
****
|
||||
|
||||
include::{generated}/validity/protos/vkCmdEndQueryIndexedEXT.txt[]
|
||||
|
|
|
@ -2850,11 +2850,10 @@ pname:subresource.aspectMask provided:
|
|||
implicit pname:usage is equal to
|
||||
slink:VkImageStencilUsageCreateInfoEXT::pname:stencilUsage.
|
||||
* If pname:aspectMask includes only ename:VK_IMAGE_ASPECT_DEPTH_BIT, the
|
||||
implicit pname:usage is equal to
|
||||
slink:VkImageCreateInfo::pname:stencilUsage.
|
||||
implicit pname:usage is equal to slink:VkImageCreateInfo::pname:usage.
|
||||
* If both aspects are included in pname:aspectMask, the implicit
|
||||
pname:usage is equal to the intersection of
|
||||
slinkVkImageCreateInfo::pname:usage and
|
||||
slink:VkImageCreateInfo::pname:usage and
|
||||
slink:VkImageStencilUsageCreateInfoEXT::pname:stencilUsage.
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
||||
|
@ -3226,14 +3225,16 @@ ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
|
|||
pname:subresourceRange::pname:layerCount# must: be less than or equal to
|
||||
the pname:arrayLayers specified in slink:VkImageCreateInfo when
|
||||
pname:image was created
|
||||
* [[VUID-VkImageViewCreateInfo-image-01484]]
|
||||
* [[VUID-VkImageViewCreateInfo-image-02724]]
|
||||
If pname:image is a 3D image created with
|
||||
ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and pname:viewType is
|
||||
ename:VK_IMAGE_VIEW_TYPE_2D or ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY,
|
||||
pname:subresourceRange::pname:baseArrayLayer must: be less than the
|
||||
pname:extent.depth specified in slink:VkImageCreateInfo when pname:image
|
||||
was created
|
||||
* [[VUID-VkImageViewCreateInfo-subresourceRange-01485]]
|
||||
depth computed from pname:baseMipLevel and pname:extent.depth specified
|
||||
in slink:VkImageCreateInfo when pname:image was created, according to
|
||||
the formula defined in <<resources-image-miplevel-sizing,Image Miplevel
|
||||
Sizing>>.
|
||||
* [[VUID-VkImageViewCreateInfo-subresourceRange-02725]]
|
||||
If pname:subresourceRange::pname:layerCount is not
|
||||
ename:VK_REMAINING_ARRAY_LAYERS, pname:image is a 3D image created with
|
||||
ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and pname:viewType is
|
||||
|
@ -3241,8 +3242,10 @@ ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
|
|||
pname:subresourceRange::pname:layerCount must: be non-zero and
|
||||
[eq]#pname:subresourceRange::pname:baseArrayLayer {plus}
|
||||
pname:subresourceRange::pname:layerCount# must: be less than or equal to
|
||||
the pname:extent.depth specified in slink:VkImageCreateInfo when
|
||||
pname:image was created
|
||||
the depth computed from pname:baseMipLevel and pname:extent.depth
|
||||
specified in slink:VkImageCreateInfo when pname:image was created,
|
||||
according to the formula defined in
|
||||
<<resources-image-miplevel-sizing,Image Miplevel Sizing>>.
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
|
||||
// The VU below comes in 3 alternate versions when the two extensions
|
||||
// are enabled, or only one is.
|
||||
|
@ -3412,7 +3415,7 @@ ifdef::VK_EXT_fragment_density_map[]
|
|||
ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or
|
||||
ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
|
||||
endif::VK_EXT_fragment_density_map[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_maintenance2
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
||||
ifndef::VK_EXT_separate_stencil_usage[]
|
||||
* [[VUID-VkImageViewCreateInfo-pNext-02661]]
|
||||
If the pname:pNext chain includes an instance of
|
||||
|
@ -3448,7 +3451,7 @@ ifdef::VK_EXT_separate_stencil_usage[]
|
|||
must: not include any bits that were not set in the pname:usage member
|
||||
of the slink:VkImageCreateInfo structure used to create pname:image
|
||||
endif::VK_EXT_separate_stencil_usage[]
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance2
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
||||
****
|
||||
|
||||
include::{generated}/validity/structs/VkImageViewCreateInfo.txt[]
|
||||
|
@ -4609,6 +4612,19 @@ ifndef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
|
|||
dedicated for a specific buffer or image
|
||||
endif::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
|
||||
endif::VK_NV_dedicated_allocation[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||
* [[VUID-vkBindBufferMemory-memory-02726]]
|
||||
If pname:memory was allocated with
|
||||
slink:VkExportMemoryAllocateInfo::pname:handleTypes not equal to `0`, at
|
||||
least one handle type it contained must also have been set in
|
||||
slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes when
|
||||
pname:buffer was created.
|
||||
* [[VUID-vkBindBufferMemory-memory-02727]]
|
||||
If pname:memory was created by a memory import operation, the external
|
||||
handle type of the imported memory must also have been set in
|
||||
slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes when
|
||||
pname:buffer was created.
|
||||
endif::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||
****
|
||||
|
||||
include::{generated}/validity/protos/vkBindBufferMemory.txt[]
|
||||
|
@ -4926,6 +4942,19 @@ ifndef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
|
|||
dedicated for a specific buffer or image
|
||||
endif::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
|
||||
endif::VK_NV_dedicated_allocation[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||
* [[VUID-vkBindImageMemory-memory-02728]]
|
||||
If pname:memory was allocated with
|
||||
slink:VkExportMemoryAllocateInfo::pname:handleTypes not equal to `0`, at
|
||||
least one handle type it contained must also have been set in
|
||||
slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when
|
||||
pname:image was created.
|
||||
* [[VUID-vkBindImageMemory-memory-02729]]
|
||||
If pname:memory was created by a memory import operation, the external
|
||||
handle type of the imported memory must also have been set in
|
||||
slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when
|
||||
pname:image was created.
|
||||
endif::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||
****
|
||||
|
||||
include::{generated}/validity/protos/vkBindImageMemory.txt[]
|
||||
|
|
|
@ -1367,6 +1367,21 @@ the binding range must: be within the range
|
|||
* [[VUID-VkSparseMemoryBind-size-01102]]
|
||||
pname:size must: be less than or equal to the size of pname:memory minus
|
||||
pname:memoryOffset
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||
* [[VUID-VkSparseMemoryBind-memory-02730]]
|
||||
If pname:memory was created with
|
||||
slink:VkExportMemoryAllocateInfo::pname:handleTypes not equal to `0`, at
|
||||
least one handle type it contained must also have been set in
|
||||
slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes or
|
||||
slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when the
|
||||
resource was created.
|
||||
* [[VUID-VkSparseMemoryBind-memory-02731]]
|
||||
If pname:memory was created by a memory import operation, the external
|
||||
handle type of the imported memory must also have been set in
|
||||
slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes or
|
||||
slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when the
|
||||
resource was created.
|
||||
endif::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||
****
|
||||
|
||||
include::{generated}/validity/structs/VkSparseMemoryBind.txt[]
|
||||
|
@ -1572,6 +1587,19 @@ include::{generated}/api/structs/VkSparseImageMemoryBind.txt[]
|
|||
pname:extent.depth must: either be a multiple of the sparse image block
|
||||
depth of the image, or else [eq]#(pname:extent.depth {plus}
|
||||
pname:offset.z)# must: equal the depth of the image subresource
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||
* [[VUID-VkSparseImageMemoryBind-memory-02732]]
|
||||
If pname:memory was created with
|
||||
slink:VkExportMemoryAllocateInfo::pname:handleTypes not equal to `0`, at
|
||||
least one handle type it contained must also have been set in
|
||||
slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when the image
|
||||
was created.
|
||||
* [[VUID-VkSparseImageMemoryBind-memory-02733]]
|
||||
If pname:memory was created by a memory import operation, the external
|
||||
handle type of the imported memory must also have been set in
|
||||
slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when
|
||||
pname:image was created.
|
||||
endif::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||
****
|
||||
|
||||
include::{generated}/validity/structs/VkSparseImageMemoryBind.txt[]
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
# Base class for working-group-specific style conventions,
|
||||
# used in generation.
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
from abc import ABCMeta, abstractmethod
|
||||
|
||||
ABC = ABCMeta('ABC', (object,), {})
|
||||
|
||||
class ConventionsBase(ABC):
|
||||
"""WG-specific conventions."""
|
||||
|
|
|
@ -64,9 +64,11 @@ endPara = re.compile(r'^( *|\[.*\]|//.*|<<<<|:.*|[a-z]+::.*|\+|.*::)$')
|
|||
|
||||
# Special case of markup ending a paragraph, used to track the current
|
||||
# command/structure. This allows for either OpenXR or Vulkan API path
|
||||
# conventions, and uses the file suffix defined by the API conventions.
|
||||
includePat = re.compile(r'^include::(\.\./)+(generated/+)?api/+(?P<type>\w+)/(?P<name>\w+)'
|
||||
+ conventions.file_suffix + r'\[\]')
|
||||
# conventions. Nominally it should use the file suffix defined by the API
|
||||
# conventions (conventions.file_suffix), except that XR uses '.txt' for
|
||||
# generated API include files, not '.adoc' like its other includes.
|
||||
includePat = re.compile(
|
||||
r'include::(?P<directory_traverse>((../){1,4}|\{INCS-VAR\}/|\{generated\}/)(generated/)?)(?P<generated_type>[\w]+)/(?P<category>\w+)/(?P<entity_name>[^./]+).txt[\[][\]]')
|
||||
|
||||
# Find the first pname: pattern in a Valid Usage statement
|
||||
pnamePat = re.compile(r'pname:(?P<param>\w+)')
|
||||
|
@ -572,9 +574,9 @@ def reflowFile(filename, args):
|
|||
|
||||
matches = includePat.search(line)
|
||||
if matches is not None:
|
||||
include_type = matches.group('type')
|
||||
include_type = matches.group('category')
|
||||
if include_type in ('protos', 'structs'):
|
||||
state.apiName = matches.group('name')
|
||||
state.apiName = matches.group('entity_name')
|
||||
|
||||
elif endParaContinue.match(line):
|
||||
# For now, always just end the paragraph.
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# The value to start tagging VU statements at, unless overridden by -nextvu
|
||||
startVUID = 2722
|
||||
startVUID = 2734
|
||||
|
|
|
@ -483,7 +483,7 @@ Changes for extensions include (but may not be limited to) the following:
|
|||
* Extensions usually make significant additions and changes to the Vulkan
|
||||
specification.
|
||||
They often add an entirely new chapter, or a new section of an existing
|
||||
chapter, defining the new functions, structures, and enumerants.
|
||||
chapter, defining the new commands, structures, and enumerants.
|
||||
For example, in the case of `VK_EXT_debug_marker`, it adds a new section
|
||||
of the "`Debugging`" chapter in `chapters/debugging.txt`, by including
|
||||
in that file:
|
||||
|
@ -781,6 +781,23 @@ enums found with the same value`" that will help identify this problem.
|
|||
====
|
||||
|
||||
|
||||
[[extensions-new-flags-types]]
|
||||
== New Flags and Bitmask Types
|
||||
|
||||
When an extension introduces a new flags (etext:*Flags) type, it should also
|
||||
introduce a corresponding new bitmask (etext:*FlagBits) type.
|
||||
The flags type contains zero more more bits from the bitmask, and is used to
|
||||
specify sets of bits for commands or structures.
|
||||
|
||||
In some cases, a new flags type will be defined with no individual bits yet
|
||||
specified.
|
||||
This usage occurs when the flags are intended for future expansion.
|
||||
In this case, even though the corresponding bitmask type is not yet useful,
|
||||
the (empty) bitmask type should be defined in `vk.xml`.
|
||||
The empty bitmask type and corresponding flags type should be given
|
||||
boilerplate definitions in the specification.
|
||||
|
||||
|
||||
== Required Extension Tokens
|
||||
|
||||
In addition to any tokens specific to the functionality of an extension, all
|
||||
|
|
|
@ -150,6 +150,8 @@ include::style/vuid.txt[]
|
|||
|
||||
= Revision History
|
||||
|
||||
* 2019-05-09 - Specify rules for defining <<extensions-new-flags-types, new
|
||||
bitmask and flags types (internal issue 1649).
|
||||
* 2019-01-06 - Add details on <<extensions-reserving-bitmask-values,
|
||||
Reserving Bitmask Values>> (internal issue 1411).
|
||||
* 2018-11-19 - Add details to the <<extensions-documenting-extensions,
|
||||
|
|
115
xml/vk.xml
115
xml/vk.xml
|
@ -153,7 +153,7 @@ server.
|
|||
<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>
|
||||
<type category="define">// Version of this file
|
||||
#define <name>VK_HEADER_VERSION</name> 107</type>
|
||||
#define <name>VK_HEADER_VERSION</name> 108</type>
|
||||
|
||||
<type category="define">
|
||||
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
|
||||
|
@ -318,6 +318,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDiscardRectangleStateCreateFlagsEXT</name>;</type>
|
||||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageToColorStateCreateFlagsNV</name>;</type>
|
||||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageModulationStateCreateFlagsNV</name>;</type>
|
||||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageReductionStateCreateFlagsNV</name>;</type>
|
||||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkValidationCacheCreateFlagsEXT</name>;</type>
|
||||
<type requires="VkDebugUtilsMessageSeverityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageSeverityFlagsEXT</name>;</type>
|
||||
<type requires="VkDebugUtilsMessageTypeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageTypeFlagsEXT</name>;</type>
|
||||
|
@ -479,6 +480,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type name="VkPointClippingBehavior" category="enum"/>
|
||||
<type category="enum" name="VkPointClippingBehaviorKHR" alias="VkPointClippingBehavior"/>
|
||||
<type name="VkCoverageModulationModeNV" category="enum"/>
|
||||
<type name="VkCoverageReductionModeNV" category="enum"/>
|
||||
<type name="VkValidationCacheHeaderVersionEXT" category="enum"/>
|
||||
<type name="VkShaderInfoTypeAMD" category="enum"/>
|
||||
<type name="VkQueueGlobalPriorityEXT" category="enum"/>
|
||||
|
@ -3738,6 +3740,11 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>supportsProtected</name><comment>Represents if surface can be protected</comment></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>uniformBufferStandardLayout</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDeviceDepthClipEnableFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member><type>void</type>* <name>pNext</name><comment>Pointer to next structure</comment></member>
|
||||
|
@ -3865,6 +3872,25 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkHeadlessSurfaceCreateFlagsEXT</type> <name>flags</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDeviceCoverageReductionModeFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"><type>VkStructureType</type><name>sType</name></member>
|
||||
<member noautovalidity="true"><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>coverageReductionMode</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPipelineCoverageReductionStateCreateInfoNV" structextends="VkPipelineMultisampleStateCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkPipelineCoverageReductionStateCreateFlagsNV</type> <name>flags</name></member>
|
||||
<member><type>VkCoverageReductionModeNV</type> <name>coverageReductionMode</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkFramebufferMixedSamplesCombinationNV" returnedonly="true">
|
||||
<member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkCoverageReductionModeNV</type> <name>coverageReductionMode</name></member>
|
||||
<member><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name></member>
|
||||
<member><type>VkSampleCountFlags</type> <name>depthStencilSamples</name></member>
|
||||
<member><type>VkSampleCountFlags</type> <name>colorSamples</name></member>
|
||||
</type>
|
||||
</types>
|
||||
|
||||
<comment>Vulkan enumerant (token) definitions</comment>
|
||||
|
@ -4934,6 +4960,10 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum value="2" name="VK_COVERAGE_MODULATION_MODE_ALPHA_NV"/>
|
||||
<enum value="3" name="VK_COVERAGE_MODULATION_MODE_RGBA_NV"/>
|
||||
</enums>
|
||||
<enums name="VkCoverageReductionModeNV" type="enum">
|
||||
<enum value="0" name="VK_COVERAGE_REDUCTION_MODE_MERGE_NV"/>
|
||||
<enum value="1" name="VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV"/>
|
||||
</enums>
|
||||
<enums name="VkValidationCacheHeaderVersionEXT" type="enum">
|
||||
<enum value="1" name="VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"/>
|
||||
</enums>
|
||||
|
@ -7337,6 +7367,12 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
|
||||
<param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</name></proto>
|
||||
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
|
||||
<param optional="false,true"><type>uint32_t</type>* <name>pCombinationCount</name></param>
|
||||
<param optional="true" len="pCombinationCount"><type>VkFramebufferMixedSamplesCombinationNV</type>* <name>pCombinations</name></param>
|
||||
</command>
|
||||
</commands>
|
||||
|
||||
<feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions">
|
||||
|
@ -8054,6 +8090,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
</extension>
|
||||
<extension name="VK_ANDROID_native_buffer" number="11" type="device" author="ANDROID" platform="android" contact="Jesse Hall @critsec" supported="disabled">
|
||||
<require>
|
||||
<comment>VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It isn't exposed to applications and uses types that aren't part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers.</comment>
|
||||
<enum value="5" name="VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION"/>
|
||||
<enum value="11" name="VK_ANDROID_NATIVE_BUFFER_NUMBER"/>
|
||||
<enum value=""VK_ANDROID_native_buffer"" name="VK_ANDROID_NATIVE_BUFFER_NAME"/>
|
||||
|
@ -8583,9 +8620,6 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type name="VkDeviceGroupSwapchainCreateInfoKHR"/>
|
||||
<command name="vkAcquireNextImage2KHR"/>
|
||||
</require>
|
||||
<require extension="VK_EXT_full_screen_exclusive">
|
||||
<command name="vkGetDeviceGroupSurfacePresentModes2EXT"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_validation_flags" number="62" type="instance" author="GOOGLE" contact="Tobin Ehlis @tobine" supported="vulkan">
|
||||
<require>
|
||||
|
@ -9118,11 +9152,11 @@ typedef void <name>CAMetalLayer</name>;
|
|||
</extension>
|
||||
<extension name="VK_EXT_swapchain_colorspace" number="105" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" requires="VK_KHR_surface" supported="vulkan">
|
||||
<require>
|
||||
<enum value="3" name="VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION"/>
|
||||
<enum value="4" name="VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_swapchain_colorspace"" name="VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME"/>
|
||||
<enum offset="1" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT"/>
|
||||
<enum offset="2" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT"/>
|
||||
<enum offset="3" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DCI_P3_LINEAR_EXT"/>
|
||||
<enum offset="3" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT"/>
|
||||
<enum offset="4" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT"/>
|
||||
<enum offset="5" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_BT709_LINEAR_EXT"/>
|
||||
<enum offset="6" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_BT709_NONLINEAR_EXT"/>
|
||||
|
@ -9134,6 +9168,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum offset="12" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT"/>
|
||||
<enum offset="13" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_PASS_THROUGH_EXT"/>
|
||||
<enum offset="14" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT"/>
|
||||
<enum extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DCI_P3_LINEAR_EXT" alias="VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT" comment="Deprecated name for backwards compatibility"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_hdr_metadata" number="106" type="device" requires="VK_KHR_swapchain" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan">
|
||||
|
@ -10665,10 +10700,19 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<command name="vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_NV_extension_251" number="251" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="disabled">
|
||||
<extension name="VK_NV_coverage_reduction_mode" number="251" requires="VK_NV_framebuffer_mixed_samples" type="device" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan">
|
||||
<require>
|
||||
<enum value="0" name="VK_NV_EXTENSION_251_SPEC_VERSION"/>
|
||||
<enum value=""VK_NV_extension_251"" name="VK_NV_EXTENSION_251_EXTENSION_NAME"/>
|
||||
<enum value="1" name="VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION"/>
|
||||
<enum value=""VK_NV_coverage_reduction_mode"" name="VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"/>
|
||||
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"/>
|
||||
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"/>
|
||||
<type name="VkPhysicalDeviceCoverageReductionModeFeaturesNV"/>
|
||||
<type name="VkPipelineCoverageReductionStateCreateInfoNV"/>
|
||||
<type name="VkPipelineCoverageReductionStateCreateFlagsNV"/>
|
||||
<type name="VkCoverageReductionModeNV"/>
|
||||
<type name="VkFramebufferMixedSamplesCombinationNV"/>
|
||||
<command name="vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_252" number="252" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled">
|
||||
|
@ -10685,10 +10729,12 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type name="VkPhysicalDeviceYcbcrImageArraysFeaturesEXT"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_254" number="254" author="EXT" contact="Graeme Leese @gnl21" supported="disabled">
|
||||
<extension name="VK_KHR_uniform_buffer_standard_layout" number="254" requires="VK_KHR_get_physical_device_properties2" type="device" author="KHR" contact="Graeme Leese @gnl21" supported="vulkan">
|
||||
<require>
|
||||
<enum value="1" name="VK_EXT_EXTENSION_254_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_extension_254"" name="VK_EXT_EXTENSION_254_EXTENSION_NAME"/>
|
||||
<enum value="1" name="VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_uniform_buffer_standard_layout"" name="VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME"/>
|
||||
<type name="VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_255" number="255" author="EXT" contact="Jesse Hall @jessehall" supported="disabled">
|
||||
|
@ -10715,6 +10761,9 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"/>
|
||||
<type name="VkSurfaceFullScreenExclusiveWin32InfoEXT"/>
|
||||
</require>
|
||||
<require extension="VK_KHR_device_group">
|
||||
<command name="vkGetDeviceGroupSurfacePresentModes2EXT"/>
|
||||
</require>
|
||||
<require feature="VK_VERSION_1_1">
|
||||
<command name="vkGetDeviceGroupSurfacePresentModes2EXT"/>
|
||||
</require>
|
||||
|
@ -10762,5 +10811,47 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<command name="vkResetQueryPoolEXT"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_GGP_extension_263" number="263" author="GGP" contact="Jean-Francois Roy @jfroy" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_GOOGLE_EXTENSION_263_SPEC_VERSION"/>
|
||||
<enum value=""VK_GGP_extension_263"" name="VK_GOOGLE_EXTENSION_263_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_BRCM_extension_264" number="264" author="BRCM" contact="Graeme Leese @gnl21" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_BRCM_EXTENSION_264_SPEC_VERSION"/>
|
||||
<enum value=""VK_BRCM_extension_264"" name="VK_BRCM_EXTENSION_264_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_BRCM_extension_265" number="265" author="BRCM" contact="Graeme Leese @gnl21" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_BRCM_EXTENSION_265_SPEC_VERSION"/>
|
||||
<enum value=""VK_BRCM_extension_265"" name="VK_BRCM_EXTENSION_265_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_266" number="266" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_EXT_EXTENSION_266_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_extension_266"" name="VK_EXT_extension_266"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_267" number="267" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_EXT_EXTENSION_267_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_extension_267"" name="VK_EXT_extension_267"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_KHR_extension_268" number="268" type="device" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_EXT_EXTENSION_268_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_extension_268"" name="VK_EXT_extension_268"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_KHR_extension_269" number="269" type="device" author="KHR" contact="Josh Barczak @jbarczak" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_KHR_EXTENSION_269_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_extension_269"" name="VK_KHR_extension_269"/>
|
||||
</require>
|
||||
</extension>
|
||||
</extensions>
|
||||
</registry>
|
||||
|
|
Loading…
Reference in New Issue