Change log for November 12, 2018 Vulkan 1.1.92 spec update:

* Update release number to 92.

Public Issues:

  * Move and modify valid usage statements dealing with pname:aspectMask in
    flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and
    slink:VkClearAttachment, so they are in places where all necessary
    information is available (public issue 529).
  * Fix math markup in <<textures-texel-anisotropic-filtering, Texel
    Anisotropic Filtering>> (public pull request 840).
  * Fix misspellings (public pull request 845).

Internal Issues:

  * Add installation instructions and a Makefile "`chunked`" target for
    chunked HTML generation (internal issue 1352).
  * Fix pipeline mesh diagram style; also fix a minor bug in the classic
    pipeline diagram where vertex/index buffers wrongly fed into the vertex
    shader (internal issue 1436).
  * Make asciidoctor ERROR output raise an error, and don't suppress
    executed command output from CI make invocation (internal issue 1454).
  * Minor typo fixes and clarifications for `VK_NV_raytracing`.
  * Cleanup extension-specific properties
  ** Remove duplicated documentation for pname:maxDiscardRectangles,
     pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they
     shouldn't be documented with the other members of
     slink:VkPhysicalDeviceLimits at all).
  ** Remove duplicate anchor for pname:maxVertexAttribDivisor
  ** Consistently document stext:VkPhysicalDevice<Extension>PropertiesKHR
  *** Always document pname:sType/pname:pNext (was inconsistent before)
  *** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not
      as slink:VkPhysicalDeviceProperties2KHR)
  *** Always include Valid Usage statements last
  * Update Makefile 'checklinks' target and associated scripts, and fix
    markup problems identified by checkLinks.py, so that we can rely on the
    checklinks script as part of Gitlab CI.
This commit is contained in:
Jon Leech 2018-11-12 04:40:40 -08:00
parent 93973bca3f
commit 279452463a
85 changed files with 2551 additions and 4761 deletions

View File

@ -9,8 +9,9 @@ spec-generate:
- apt-get install -y -qq cmake bison flex libffi-dev libxml2-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev ttf-lyx
- gem install asciidoctor asciidoctor-mathematical coderay json-schema
script:
- ./makeAllExts -j${nproc} -Otarget html styleguide registry manhtml manhtmlpages checkinc checklinks validusage
- ./makeAllExts QUIET= -j${nproc} -Otarget html styleguide registry manhtml manhtmlpages checkinc checklinks validusage
artifacts:
when: always
paths:
- include/
- src/

View File

@ -58,6 +58,7 @@ targets, or they can individually be found as follows:
Vulkan^(R)^ Specification::
* `html` -- Single-file HTML5 in `$(OUTDIR)/html/vkspec.html`, and KaTeX
dependency in $(OUTDIR)/katex
* `chunked` -- Chunked HTML5 in `$(OUTDIR)/html/chap?.html`
* `pdf` -- PDF in `$(OUTDIR)/pdf/vkspec.pdf`
"`styleguide`" (Vulkan^(R)^ Documentation and Extensions: Procedures and Conventions)::
* `styleguide` -- Single-file HTML5 in `$(OUTDIR)/styleguide.html`
@ -456,6 +457,11 @@ parts you don't use) completely before trying to install.
for `asciidoctor-mathematical`] (There are a lot of these!)
* KaTeX distribution (version 0.7.0 from https://github.com/Khan/KaTeX.
This is cached under `katex/`, and need not be installed from github.
* If generating the chunked HTML target:
** `asciidoctor-chunker` installed according to
https://github.com/wshito/asciidoctor-chunker[the chunker README].
** `Roswell` (version 18.10.10.95 from
https://github.com/roswell/roswell/releases)
.Note
[NOTE]
@ -691,6 +697,10 @@ ruby environments>> such as `rbenv` or `rvm` might be preferable.
Once the Ruby environment is set up, install the required
<<depends-gems,Ruby Gems>>.
If you will need to generate the chunked HTML target, install the
<<depends-chunker, Asciidoctor-chunker>> dependencies as described below.
[[depends-osx]]
=== Mac OS X
@ -742,6 +752,24 @@ gem update
gem clean
----
[[depends-chunker]]
=== Asciidoctor-chunker
To generate the `chunked` HTML target, you must install
https://github.com/wshito/asciidoctor-chunker[`asciidoctor-chunker`] and
the underlying https://github.com/roswell/roswell/releases[`Roswell`]
compiler and related dependencies. These projects do not seem to support
standard software repositories and packaging (e.g. RPM, .deb, etc.), so
you will need to follow the
https://github.com/wshito/asciidoctor-chunker[How to Install] directions
for asciidoctor-chunker.
Note that both Roswell and asciidoctor-chunker are installed outside the
scope of the Vulkan Specification repository (in system directories, and
in your home directory, respectively).
[[troubleshooting]]
== Troubleshooting
@ -848,6 +876,27 @@ asciidoctor: ERROR: chapters/???.txt: line 189: include file not found: ???/Vulk
you probably forgot to call `make clean_generated` as stated in the
<<building-extensions>> chapter.
=== Asciidoctor-chunker memory exhaustion
If you get errors like:
----
ASCIIDOCTOR-CHUNKER: Processing Chap 17 ....
Heap exhausted during garbage collection: 224 bytes available, 288 requested.
...
GC control variables:
*GC-INHIBIT* = true
*GC-PENDING* = true
*STOP-FOR-GC-PENDING* = false
fatal error encountered in SBCL pid 31086(tid 0x7f4816866700):
Heap exhausted, game over.
----
try specifying a larger dynamic space size, something bigger than 2000:
----
$ ROSWELLOPTS="dynamic-space-size=2500" ./makeAllExts html chunked
----
[[ruby-env]]
== Alternative Ruby environments

View File

@ -101,18 +101,21 @@ PDFMATHDIR:=$(OUTDIR)/equations_temp
# Set VERBOSE to -v to see what asciidoc is doing.
VERBOSE =
# asciidoc attributes to set.
# PATCHVERSION must == VK_HEADER_VERSION from vk.xml / vulkan_core.h
# asciidoc attributes to set (defaults are usually OK)
# NOTEOPTS sets options controlling which NOTEs are generated
# ATTRIBOPTS sets the api revision and enables MathJax generation
# PATCHVERSION must equal VK_HEADER_VERSION from vk.xml
# ATTRIBOPTS sets the api revision and enables KaTeX generation
# VERSIONATTRIBS sets attributes for enabled API versions (set above
# based on $(VERSIONS))
# EXTATTRIBS sets attributes for enabled extensions (set above based on
# $(EXTENSIONS))
# EXTRAATTRIBS sets additional attributes, if passed to make
# ADOCMISCOPTS miscellaneous options controlling error behavior, etc.
# ADOCEXTS asciidoctor extensions to load
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 91
PATCHVERSION = 92
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
else
@ -141,9 +144,9 @@ ATTRIBOPTS = -a revnumber="$(SPECREVISION)" \
$(VERSIONATTRIBS) \
$(EXTATTRIBS) \
$(EXTRAATTRIBS)
ADOCMISCOPTS = --failure-level ERROR
ADOCEXTS = -r $(CURDIR)/config/vulkan-macros.rb -r $(CURDIR)/config/tilde_open_block.rb
ADOCOPTS = -d book $(ATTRIBOPTS) $(NOTEOPTS) $(VERBOSE) $(ADOCEXTS)
ADOCOPTS = -d book $(ADOCMISCOPTS) $(ATTRIBOPTS) $(NOTEOPTS) $(VERBOSE) $(ADOCEXTS)
ADOCHTMLEXTS = -r $(CURDIR)/config/katex_replace.rb
@ -196,6 +199,14 @@ $(OUTDIR)/$(KATEXDIR)/README.md: katex/README.md
# Spec targets
# There is some complexity to try and avoid short virtual targets like 'html'
# causing specs to *always* be regenerated.
ROSWELL = ros
ROSWELLOPTS ?= dynamic-space-size=4000
CHUNKER = $(HOME)/common-lisp/asciidoctor-chunker/roswell/asciidoctor-chunker.ros
chunked: $(HTMLDIR)/vkspec.html $(SPECSRC) $(COMMONDOCS)
$(QUIET)$(ROSWELL) $(ROSWELLOPTS) $(CHUNKER) \
$(HTMLDIR)/vkspec.html -o $(HTMLDIR)
html: $(HTMLDIR)/vkspec.html $(SPECSRC) $(COMMONDOCS)
$(HTMLDIR)/vkspec.html: KATEXDIR = ../katex
@ -366,6 +377,7 @@ endif
manhtml: $(OUTDIR)/apispec.html
$(OUTDIR)/apispec.html: KATEXDIR = katex
$(OUTDIR)/apispec.html: ADOCMISCOPTS =
$(OUTDIR)/apispec.html: $(SPECVERSION) man/apispec.txt $(MANCOPYRIGHT) $(SVGFILES) $(GENINCLUDE) $(GENDEPENDS) katexinst
$(QUIET)$(MKDIR) $(OUTDIR)
$(QUIET)$(ASCIIDOC) -b html5 -a html_spec_relative='html/vkspec.html' $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ man/apispec.txt
@ -409,11 +421,11 @@ checkinc:
# Generates files in $(CHECKDIR):
# specErrs.txt - errors & warnings in API spec
# manErrs.txt - errors & warnings in man pages
checklinks: vkapi.py
checklinks: man/apispec.txt generated
$(QUIET)if test ! -d $(CHECKDIR) ; then $(MKDIR) $(CHECKDIR) ; fi
$(QUIET)echo "Generating link checks for spec (specErrs.txt) and man pages (manErrs.txt)"
$(QUIET)$(PYTHON) checkLinks.py -follow man/[Vv][Kk]*.txt > $(CHECKDIR)/manErrs.txt
$(QUIET)$(PYTHON) checkLinks.py -follow $(SPECFILES) > $(CHECKDIR)/specErrs.txt
$(QUIET)$(PYTHON) checkLinks.py -follow man/[Vv][Kk]*.txt > $(CHECKDIR)/manErrs.txt
# Targets generated from the XML and registry processing scripts
# vkapi.py - Python encoding of the registry
@ -427,11 +439,15 @@ checklinks: vkapi.py
#
# $(EXTOPTIONS) specifies the extensions which are included in these
# targets, and is set above based on $(EXTENSIONS).
#
# $(GENVKEXTRA) are extra options that can be passed to genvk.py, e.g.
# '-diag diag'
REGISTRY = xml
VKXML = $(REGISTRY)/vk.xml
GENVK = $(REGISTRY)/genvk.py
GENVKOPTS= $(VERSIONOPTIONS) $(EXTOPTIONS) -registry $(VKXML)
GENVKOPTS = $(VERSIONOPTIONS) $(EXTOPTIONS) $(GENVKEXTRA) -registry $(VKXML)
GENVKEXTRA =
vkapi.py: $(VKXML) $(GENVK)
$(PYTHON) $(GENVK) $(GENVKOPTS) -o . vkapi.py

View File

@ -22,7 +22,7 @@ None.
=== New Enum Constants
* Extending ename:VkStructureType:
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
=== New Enums

View File

@ -18,7 +18,7 @@ None.
=== New Enum Constants
* Extending ename:VkStructureType:
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
=== New Enums

View File

@ -34,7 +34,7 @@ None.
=== New Enum Constants
* Extending ename:VkStructureType:
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
** ename:VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
** ename:VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
@ -42,7 +42,7 @@ None.
** ename:VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
** ename:VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
* Extending ename:VkExternalMemoryHandleTypeFlagBits:
* Extending elink:VkExternalMemoryHandleTypeFlagBits:
** ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
=== New Enums

View File

@ -26,11 +26,11 @@ intermediate decoding precision.
Three decoding options are provided:
* Decode to elink:VK_FORMAT_R16G16B16A16_SFLOAT precision: This is the
* Decode to ename:VK_FORMAT_R16G16B16A16_SFLOAT precision: This is the
default, and matches the required behavior in the core API.
* Decode to elink:VK_FORMAT_R8G8B8A8_UNORM precision: This is provided as
* Decode to ename:VK_FORMAT_R8G8B8A8_UNORM precision: This is provided as
an option in LDR mode.
* Decode to elink:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 precision: This is
* Decode to ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 precision: This is
provided as an option in both LDR and HDR mode.
In this mode, negative values cannot be represented and are clamped to
zero.

View File

@ -45,10 +45,10 @@ The main difference between this extension and `<<VK_EXT_debug_report>>` and
`<<VK_EXT_debug_marker>>` is that those extensions use
elink:VkDebugReportObjectTypeEXT to identify objects.
This extension uses the core elink:VkObjectType in place of
ename:VkDebugReportObjectTypeEXT.
elink:VkDebugReportObjectTypeEXT.
The primary reason for this move is that no future object type handle
enumeration values will be added to ename:VkDebugReportObjectTypeEXT since
the creation of ename:VkObjectType.
enumeration values will be added to elink:VkDebugReportObjectTypeEXT since
the creation of elink:VkObjectType.
In addition, this extension combines the functionality of both
`<<VK_EXT_debug_report>>` and `<<VK_EXT_debug_marker>>` by allowing object

View File

@ -76,18 +76,18 @@ Many APIs in Linux use _modifiers_ to negotiate and specify the memory
layout of shared images.
For example, a Wayland compositor and Wayland client may, by relaying
_modifiers_ over the Wayland protocol `zwp_linux_dmabuf_v1`, negotiate a
vendor-specific tiling format for a shared stext:wl_buffer.
The client may allocate the underlying memory for the stext:wl_buffer with
GBM, providing the chosen _modifier_ to fname:gbm_bo_create_with_modifiers.
The client may then import the stext:wl_buffer into Vulkan for producing
vendor-specific tiling format for a shared code:wl_buffer.
The client may allocate the underlying memory for the code:wl_buffer with
GBM, providing the chosen _modifier_ to code:gbm_bo_create_with_modifiers.
The client may then import the code:wl_buffer into Vulkan for producing
image content, providing the resource's dma_buf to
slink:VkImportMemoryFdInfo and its _modifier_ to
slink:VkImportMemoryFdInfoKHR and its _modifier_ to
slink:VkImageDrmFormatModifierExplicitCreateInfoEXT.
The compositor may then import the stext:wl_buffer into OpenGL for sampling,
providing the resource's dma_buf and _modifier_ to fname:eglCreateImage.
The compositor may also bypass OpenGL and submit the stext:wl_buffer
directly to the kernel's display API, providing the dma_buf and _modifier_
through stext:drm_mode_fb_cmd2.
The compositor may then import the code:wl_buffer into OpenGL for sampling,
providing the resource's dma_buf and _modifier_ to code:eglCreateImage.
The compositor may also bypass OpenGL and submit the code:wl_buffer directly
to the kernel's display API, providing the dma_buf and _modifier_ through
code:drm_mode_fb_cmd2.
==== Format Translation
@ -198,7 +198,7 @@ layout of each plane with flink:vkGetImageSubresourceLayout.
The application then allocates the image's memory with
slink:VkMemoryAllocateInfo, adding chained extension structures for external
memory; binds it to the image; and exports the memory, for example, with
flink:vkGetMemoryFd.
flink:vkGetMemoryFdKHR.
Finally, the application sends the image's creation parameters, its
_modifier_, its per-plane memory layout, and the exported memory handle to
@ -211,14 +211,14 @@ consumers is outside the scope of this specification.
Extension
`EGL_EXT_image_dma_buf_import`^<<VK_EXT_image_drm_format_modifier-fn1,1>>^
introduced the ability to create an stext:EGLImage by importing for each
introduced the ability to create an code:EGLImage by importing for each
plane a dma_buf, offset, and row pitch.
Later, extension
`EGL_EXT_image_dma_buf_import_modifiers`^<<VK_EXT_image_drm_format_modifier-fn2,2>>^
introduced the ability to query which combination of formats and _modifiers_
the implementation supports and to specify _modifiers_ during creation of
the stext:EGLImage.
the code:EGLImage.
Extension
`EGL_MESA_image_dma_buf_export`^<<VK_EXT_image_drm_format_modifier-fn3,3>>^
@ -252,7 +252,7 @@ None.
** ename:VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
** ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
** ename:VK_STRUCTURE_TYPE_IMAGE_EXPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT
** ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
** ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
* Extending elink:VkImageTiling:
@ -270,7 +270,7 @@ None.
=== New Structures
* Extends elink:VkFormatProperties2:
* Extends slink:VkFormatProperties2:
** slink:VkDrmFormatModifierPropertiesListEXT
* Member of slink:VkDrmFormatModifierPropertiesListEXT:
@ -342,8 +342,8 @@ the following ways:
.Differences in Image Creation
- *Undedicated allocation by default.* When importing or exporting a set
of dma_bufs as an stext:EGLImage or stext:gbm_bo, common practice
mandates that each dma_buf's memory be dedicated (in the sense of
of dma_bufs as an code:EGLImage or code:gbm_bo, common practice mandates
that each dma_buf's memory be dedicated (in the sense of
`VK_KHR_dedicated_allocation`) to the image (though not necessarily
dedicated to a single plane).
In particular, neither the GBM documentation nor the EGL extension
@ -355,7 +355,7 @@ the following ways:
created with ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT.
- *Separation of image creation and memory allocation.* When importing a
set of dma_bufs as an stext:EGLImage or stext:gbm_bo, EGL and GBM create
set of dma_bufs as an code:EGLImage or code:gbm_bo, EGL and GBM create
the image resource and bind it to memory (the dma_bufs) simultaneously.
This allows EGL and GBM to query each dma_buf's size during image
creation.
@ -397,7 +397,7 @@ image's size when its tiling uses a supported _modifier_.
Suppose that the external image's size is smaller than the
implementation-calculated size.
If the application provided the external image's size to
slink:vkCreateImage, the implementation would observe the mismatched size
flink:vkCreateImage, the implementation would observe the mismatched size
and recognize its inability to comprehend the external image's layout
(unless the implementation used the application-provided size to select a
refinement of the tiling layout indicated by the _modifier_, which is
@ -405,7 +405,7 @@ strongly discouraged).
The implementation would observe the conflict, and reject image creation
with ename:VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT.
On the other hand, if the application did not provide the external image's
size to slink:vkCreateImage, then the application would observe after
size to flink:vkCreateImage, then the application would observe after
calling flink:vkGetImageMemoryRequirements that the external image's size is
less than the size required by the implementation.
The application would observe the conflict and refuse to bind the
@ -415,7 +415,7 @@ In both cases, the result is explicit failure.
Suppose that the external image's size is larger than the
implementation-calculated size.
If the application provided the external image's size to
slink:vkCreateImage, for reasons similar to above the implementation would
flink:vkCreateImage, for reasons similar to above the implementation would
observe the mismatched size and recognize its inability to comprehend the
image data residing in the extra size.
The implementation, however, must assume that image data resides in the

View File

@ -100,7 +100,7 @@ application could use the following set of structures:
* Revision 1, 2017-12-04 (Vikram Kushwaha)
- First Version
* Revision 2, 2018-07-16 (Jason Ekstrand)
- Adjust the interaction between fname:divisor and pname:firstInstance
- Adjust the interaction between pname:divisor and pname:firstInstance
to match the OpenGL convention.
- Disallow divisors of zero.
* Revision 3, 2018-08-03 (Vikram Kushwaha)

View File

@ -28,11 +28,11 @@ None.
=== New Enum Constants
* Extending ename:VkStructureType:
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR
** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR
* Extending ename:VkImageCreateFlagBits:
* Extending elink:VkImageCreateFlagBits:
** ename:VK_IMAGE_CREATE_ALIAS_BIT_KHR
=== New Enums

View File

@ -27,7 +27,7 @@ which describes the new descriptors.
=== New Object Types
* slink:VkDescriptorUpdateTemplateKHR
* sname:VkDescriptorUpdateTemplateKHR
=== New Enum Constants
@ -37,7 +37,7 @@ Extending elink:VkStructureType:
=== New Enums
* elink:VkDescriptorUpdateTemplateCreateFlagsKHR
* tlink:VkDescriptorUpdateTemplateCreateFlagsKHR
* elink:VkDescriptorUpdateTemplateTypeKHR
=== New Structures

View File

@ -58,8 +58,8 @@ semaphores?
Doing so would require extending the fence signal and wait operations to
provide values to signal / wait for, like sname:VkD3D12FenceSubmitInfoKHR
does.
A D3D12 fence can be signaled by importing it into a elink:VkSemaphore
instead of a elink:VkFence, and applications can check status or wait on the
A D3D12 fence can be signaled by importing it into a slink:VkSemaphore
instead of a slink:VkFence, and applications can check status or wait on the
D3D12 fence using non-Vulkan APIs.
The convenience of being able to do these operations on sname:VkFence
objects doesn't justify the extra API complexity.

View File

@ -77,8 +77,6 @@ Other alternatives:
extension.
* flink:vkGetPhysicalDeviceWaylandPresentationSupportKHR: Not in this
extension.
* flink:vkGetPhysicalDeviceMirPresentationSupportKHR: Not in this
extension.
* flink:vkGetPhysicalDeviceWin32PresentationSupportKHR: Not in this
extension.

View File

@ -19,7 +19,7 @@ include::meta/VK_KHR_incremental_present.txt[]
- Jeff Juliano, NVIDIA
- Jeff Bolz, NVIDIA
This device extension extends slink:vkQueuePresentKHR, from the
This device extension extends flink:vkQueuePresentKHR, from the
`<<VK_KHR_swapchain>>` extension, allowing an application to specify a list
of rectangular, modified regions of each image to present.
This should be used in situations where an application is only changing a

View File

@ -73,8 +73,8 @@ None.
=== New Enums
* slink:VkPointClippingBehaviorKHR
* slink:VkTessellationDomainOriginKHR
* elink:VkPointClippingBehaviorKHR
* elink:VkTessellationDomainOriginKHR
=== New Structures

View File

@ -58,7 +58,7 @@ endif::VK_VERSION_1_1[]
=== New Enums
ifdef::VK_VERSION_1_1[]
* slink:VkDeviceGroupPresentModeFlagBitsKHR
* elink:VkDeviceGroupPresentModeFlagBitsKHR
* elink:VkSwapchainCreateFlagBitsKHR
endif::VK_VERSION_1_1[]
@ -303,7 +303,7 @@ engine accepts images in.
For example, a presentation engine that does not support transforming
surfaces as part of presentation, and which is presenting to a surface that
is displayed with a 90-degree rotation, would return only one supported
transform bit: ename:VK_SURFACE_TRANSFORM_ROT90_BIT_KHR.
transform bit: ename:VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR.
Applications must transform their rendering by the transform they specify
when creating the swapchain in pname:preTransform field.
@ -381,8 +381,8 @@ methods on some platforms, but some applications might rely on the content
of presentable images to perform techniques such as partial updates or
motion blurs.
23) What is the purpose of specifying a slink:VkColorSpaceKHR along with
slink:VkFormat when creating a swapchain?
23) What is the purpose of specifying a elink:VkColorSpaceKHR along with
elink:VkFormat when creating a swapchain?
*RESOLVED*: While Vulkan itself is color space agnostic (e.g. even the
meaning of R, G, B and A can be freely defined by the rendering
@ -396,7 +396,7 @@ pairs.
This set can be discovered via flink:vkGetPhysicalDeviceSurfaceFormatsKHR.
As it can be expected that most display devices support the sRGB color
space, at least one format/color-space pair has to be exposed, where the
color space is ename:VK_COLOR_SPACE_SRGB_NONLINEAR.
color space is ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR.
24) How are sRGB formats and the sRGB color space related?
@ -406,7 +406,8 @@ It merely means that the hardware can directly support applying the
non-linear transfer functions defined by the sRGB standard color space when
reading from or writing to images of that these formats.
Still, it is unlikely that a swapchain will expose a etext:*_SRGB format
along with any color space other than ename:VK_COLOR_SPACE_SRGB_NONLINEAR.
along with any color space other than
ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR.
On the other hand, non-etext:*_SRGB formats will be very likely exposed in
pair with a SRGB color space.

View File

@ -43,7 +43,7 @@ The intended usage for this extension is for the application to:
* create a slink:VkObjectTableNVX, and register the various Vulkan objects
that are needed to evaluate the input parameters.
* create a slink:VkIndirectCommandsLayoutNVX, which lists the
slink:VkIndirectCommandsTokenTypeNVX it wants to dynamically change as
elink:VkIndirectCommandsTokenTypeNVX it wants to dynamically change as
atomic command sequence.
This step likely involves some internal device code compilation, since
the intent is for the GPU to generate the command buffer in the
@ -227,7 +227,7 @@ easily.
Same as secondary command buffer
12) Should sequenceOrdered be part of IndirectCommandsLayout or
slink:vkCmdProcessCommandsNVX?
flink:vkCmdProcessCommandsNVX?
Seems better for IndirectCommandsLayout, as that is when most heavy lifting
in terms of internal device code generation is done.
@ -244,7 +244,7 @@ b) flink:vkCmdProcessCommandsNVX makes use slink:VkCommandBufferBeginInfo
c) The pname:targetCommandbuffer must be inside the "`begin`" state already
at the moment of being passed.
This very likely suggests a new slink:VkCommandBufferUsageFlags
This very likely suggests a new tlink:VkCommandBufferUsageFlags
etext:VK_COMMAND_BUFFER_USAGE_DEVICE_GENERATED_BIT.
d) The pname:targetCommandbuffer must reserve space via a new function.

View File

@ -50,7 +50,7 @@ None.
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
* Extending elink:VkDynamicState:
** ename:VK_DYANMIC_STATE_VIEWPORT_W_SCALING_NV
** ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV
=== New Enums

View File

@ -55,7 +55,7 @@ None.
=== New Structures
* elink:VkPhysicalDeviceCornerSampledImageFeaturesNV
* slink:VkPhysicalDeviceCornerSampledImageFeaturesNV
=== New Functions

View File

@ -25,7 +25,7 @@ None.
=== New Enum Constants
Extending slink:VkStructureType:
Extending elink:VkStructureType:
* ename:VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
* ename:VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV

View File

@ -39,7 +39,7 @@ None.
=== New Structures
* slink:VkPhysicalDeviceExclusiveScissorFeaturesNV
* slink:VkPipelineExclusiveScissorStateCreateInfoNV
* slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV
=== New Functions

View File

@ -159,7 +159,7 @@ natural place to access the shading rate image.
pixel?
*RESOLVED* For single-pixel fragments, fragment shader inputs decorated with
ename:Centroid are sampled at an implementation-dependent location in the
code:Centroid are sampled at an implementation-dependent location in the
intersection of the area of the primitive being rasterized and the area of
the pixel that corresponds to the fragment.
With multi-pixel fragments, we follow a similar pattern, using the

View File

@ -174,7 +174,7 @@ Color Renderable Format::
* slink:VkImageFormatProperties::pname:linearTilingFeatures
* slink:VkImageFormatProperties::pname:optimalTilingFeatures
ifdef::VK_EXT_image_drm_format_modifier[]
* slink:VkDrmFormatPropertiesEXT::pname:drmFormatModifierTilingFeatures
* slink:VkDrmFormatModifierPropertiesEXT::pname:drmFormatModifierTilingFeatures
endif::VK_EXT_image_drm_format_modifier[]
Color Sample Mask::
@ -796,7 +796,7 @@ ifdef::VK_EXT_image_drm_format_modifier[]
* a slink:VkImage created with
ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose
<<glossary-drm-format-modifier,Linux DRM format modifier>> is
ename:DRM_FORMAT_MOD_LINEAR
code:DRM_FORMAT_MOD_LINEAR
endif::VK_EXT_image_drm_format_modifier[]
+
A resource is _non-linear_ if it is one of the following:
@ -805,7 +805,7 @@ ifdef::VK_EXT_image_drm_format_modifier[]
* a slink:VkImage created with
ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose
<<glossary-drm-format-modifier,Linux DRM format modifier>> is not
ename:DRM_FORMAT_MOD_LINEAR
code:DRM_FORMAT_MOD_LINEAR
endif::VK_EXT_image_drm_format_modifier[]
ifdef::VK_EXT_image_drm_format_modifier[]

View File

@ -713,7 +713,7 @@ ifdef::VK_NV_ray_tracing[]
* code:HitAttributeNV storage class must: only be used in intersection,
any hit, or closest hit shaders.
* code:CallableDataNV storage class must: only be used in ray generation,
closest hit, mis, and callable shaders.
closest hit, miss, and callable shaders.
* code:IncomingCallableDataNV storage class must only be used in callable
shaders.
endif::VK_NV_ray_tracing[]

View File

@ -22,7 +22,7 @@ The command will write the 32-bit marker value into the buffer only after
all preceding commands have finished executing up to at least the specified
pipeline stage.
This includes the completion of other preceding
ename:vkCmdWriteBufferMarkerAMD commands so long as their specified pipeline
fname:vkCmdWriteBufferMarkerAMD commands so long as their specified pipeline
stages occur either at the same time or earlier than this command's
specified pname:pipelineStage.

View File

@ -114,8 +114,8 @@ include::../api/enums/VkDebugReportFlagBitsEXT.txt[]
--
include::../api/flags/VkDebugReportFlagsEXT.txt[]
sname:VkDebugReportFlagsEXT is a bitmask type for setting a mask of zero or
more slink:VkDebugReportFlagBitsEXT.
tname:VkDebugReportFlagsEXT is a bitmask type for setting a mask of zero or
more elink:VkDebugReportFlagBitsEXT.
--
[open,refpage='PFN_vkDebugReportCallbackEXT',desc='Application-defined debug report callback function',type='funcpointers']

View File

@ -473,11 +473,11 @@ include::../api/enums/VkDebugUtilsMessageSeverityFlagBitsEXT.txt[]
[NOTE]
.Note
====
The values of ename:VkDebugUtilsMessageSeverityFlagBitsEXT are sorted based
The values of elink:VkDebugUtilsMessageSeverityFlagBitsEXT are sorted based
on severity.
The higher the flag value, the more severe the message.
This allows for simple boolean operation comparisons when looking at
ename:VkDebugUtilsMessageSeverityFlagBitsEXT values.
elink:VkDebugUtilsMessageSeverityFlagBitsEXT values.
For example:

View File

@ -69,7 +69,7 @@ include::../../api/enums/VkSurfaceCounterFlagBitsEXT.txt[]
--
include::../../api/flags/VkSurfaceCounterFlagsEXT.txt[]
sname:VkSurfaceCounterFlagsEXT is a bitmask type for setting a mask of zero
or more slink:VkSurfaceCounterFlagBitsEXT.
tname:VkSurfaceCounterFlagsEXT is a bitmask type for setting a mask of zero
or more elink:VkSurfaceCounterFlagBitsEXT.
--

View File

@ -194,7 +194,7 @@ include::../../api/structs/VkPastPresentationTimingGOOGLE.txt[]
The results for a given pname:swapchain and pname:presentID are only
returned once from fname:vkGetPastPresentationTimingGOOGLE.
The application can: use the fname:VkPastPresentationTimingGOOGLE values to
The application can: use the sname:VkPastPresentationTimingGOOGLE values to
occasionally adjust its timing.
For example, if pname:actualPresentTime is later than expected (e.g. one
pname:refreshDuration late), the application may increase its target IPD to

View File

@ -86,10 +86,9 @@ For devices which have no natural value to return here, implementations
should: return the maximum resolution supported.
====
* pname:supportedTransforms tells which transforms are supported by this
display.
This will contain one or more of the bits from
sname:VkSurfaceTransformFlagsKHR.
* pname:supportedTransforms is a bitmask of
elink:VkSurfaceTransformFlagBitsKHR describing which transforms are
supported by this display.
* pname:planeReorderPossible tells whether the planes on this display can:
have their z order changed.
If this is ename:VK_TRUE, the application can: re-arrange the planes on
@ -756,6 +755,6 @@ include::../../api/enums/VkDisplayPlaneAlphaFlagBitsKHR.txt[]
--
include::../../api/flags/VkDisplayPlaneAlphaFlagsKHR.txt[]
sname:VkDisplayPlaneAlphaFlagsKHR is a bitmask type for setting a mask of
zero or more slink:VkDisplayPlaneAlphaFlagBitsKHR.
tname:VkDisplayPlaneAlphaFlagsKHR is a bitmask type for setting a mask of
zero or more elink:VkDisplayPlaneAlphaFlagBitsKHR.
--

View File

@ -23,8 +23,8 @@ include::../../api/protos/vkCreateSharedSwapchainsKHR.txt[]
* pname:pSwapchains is a pointer to an array of slink:VkSwapchainKHR
handles in which the created swapchain objects will be returned.
fname:vkCreateSharedSwapchains is similar to flink:vkCreateSwapchainKHR,
except that it takes an array of sname:VkSwapchainCreateInfoKHR structures,
fname:vkCreateSharedSwapchainsKHR is similar to flink:vkCreateSwapchainKHR,
except that it takes an array of slink:VkSwapchainCreateInfoKHR structures,
and returns an array of swapchain objects.
The swapchain creation parameters that affect the properties and number of

View File

@ -1,58 +0,0 @@
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
[[platformCreateSurface_mir,platformCreateSurface_mir]]
=== Mir Platform
[open,refpage='vkCreateMirSurfaceKHR',desc='Create a slink:VkSurfaceKHR object for a Mir window',type='protos']
--
To create a sname:VkSurfaceKHR object for a Mir window, call:
include::../../api/protos/vkCreateMirSurfaceKHR.txt[]
* pname:instance is the instance to associate the surface with.
* pname:pCreateInfo is a pointer to an instance of the
slink:VkMirSurfaceCreateInfoKHR structure containing parameters
affecting the creation of the surface object.
* pname:pAllocator is the allocator used for host memory allocated for the
surface object when there is no more specific allocator available (see
<<memory-allocation,Memory Allocation>>).
* pname:pSurface points to a slink:VkSurfaceKHR handle in which the
created surface object is returned.
include::../../validity/protos/vkCreateMirSurfaceKHR.txt[]
--
[open,refpage='VkMirSurfaceCreateInfoKHR',desc='Structure specifying parameters of a newly created Mir surface object',type='structs']
--
The sname:VkMirSurfaceCreateInfoKHR structure is defined as:
include::../../api/structs/VkMirSurfaceCreateInfoKHR.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:connection and pname:surface are pointers to the
code:MirConnection and code:MirSurface for the window to associate the
surface with.
.Valid Usage
****
* [[VUID-VkMirSurfaceCreateInfoKHR-connection-01263]]
pname:connection must: point to a valid code:MirConnection.
* [[VUID-VkMirSurfaceCreateInfoKHR-surface-01264]]
pname:surface must: point to a valid code:MirSurface.
****
include::../../validity/structs/VkMirSurfaceCreateInfoKHR.txt[]
--
On Mir, when a swapchain's pname:imageExtent does not match the surface's
pname:currentExtent, the presentable images will be scaled to the surface's
dimensions during presentation.
pname:minImageExtent is [eq]#(1,1)#, and pname:maxImageExtent is the maximum
supported surface size.

View File

@ -1,34 +0,0 @@
// Copyright (c) 2014-2018 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
[[platformQuerySupport_mir,platformQuerySupport_mir]]
=== Mir Platform
[open,refpage='vkGetPhysicalDeviceMirPresentationSupportKHR',desc='Query physical device for presentation to Mir',type='protos']
--
To determine whether a queue family of a physical device supports
presentation to the Mir compositor, call:
include::../../api/protos/vkGetPhysicalDeviceMirPresentationSupportKHR.txt[]
* pname:physicalDevice is the physical device.
* pname:queueFamilyIndex is the queue family index.
* pname:connection is a pointer to the code:MirConnection, and identifies
the desired Mir compositor.
This platform-specific function can: be called prior to creating a surface.
.Valid Usage
****
* [[VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-queueFamilyIndex-01265]]
pname:queueFamilyIndex must: be less than
pname:pQueueFamilyPropertyCount returned by
fname:vkGetPhysicalDeviceQueueFamilyProperties for the given
pname:physicalDevice
****
include::../../validity/protos/vkGetPhysicalDeviceMirPresentationSupportKHR.txt[]
--

View File

@ -510,8 +510,8 @@ include::../../api/enums/VkSurfaceTransformFlagBitsKHR.txt[]
--
include::../../api/flags/VkSurfaceTransformFlagsKHR.txt[]
sname:VkSurfaceTransformFlagsKHR is a bitmask type for setting a mask of
zero or more slink:VkSurfaceTransformFlagBitsKHR.
tname:VkSurfaceTransformFlagsKHR is a bitmask type for setting a mask of
zero or more elink:VkSurfaceTransformFlagBitsKHR.
--
@ -552,8 +552,8 @@ These values are described as follows:
--
include::../../api/flags/VkCompositeAlphaFlagsKHR.txt[]
sname:VkCompositeAlphaFlagsKHR is a bitmask type for setting a mask of zero
or more slink:VkCompositeAlphaFlagBitsKHR.
tname:VkCompositeAlphaFlagsKHR is a bitmask type for setting a mask of zero
or more elink:VkCompositeAlphaFlagBitsKHR.
--
[open,refpage='vkGetPhysicalDeviceSurfaceFormatsKHR',desc='Query color formats supported by surface',type='protos']
@ -1165,8 +1165,8 @@ include::../../api/enums/VkDeviceGroupPresentModeFlagBitsKHR.txt[]
--
include::../../api/flags/VkDeviceGroupPresentModeFlagsKHR.txt[]
sname:VkDeviceGroupPresentModeFlagsKHR is a bitmask type for setting a mask
of zero or more slink:VkDeviceGroupPresentModeFlagBitsKHR.
tname:VkDeviceGroupPresentModeFlagsKHR is a bitmask type for setting a mask
of zero or more elink:VkDeviceGroupPresentModeFlagBitsKHR.
--
[open,refpage='vkGetDeviceGroupSurfacePresentModesKHR',desc='Query present capabilities for a surface',type='protos']
@ -1183,7 +1183,7 @@ include::../../api/protos/vkGetDeviceGroupSurfacePresentModesKHR.txt[]
* pname:device is the logical device.
* pname:surface is the surface.
* pname:pModes is a pointer to a value of type
sname:VkDeviceGroupPresentModeFlagsKHR that is filled with the supported
tlink:VkDeviceGroupPresentModeFlagsKHR that is filled with the supported
device group present modes for the surface.
The modes returned by this command are not invariant, and may: change in

View File

@ -121,7 +121,7 @@ include::../../api/structs/VkSwapchainCreateInfoKHR.txt[]
many images, or it will fail to create the swapchain.
* pname:imageFormat is a elink:VkFormat value specifying the format the
swapchain image(s) will be created with.
* pname:imageColorSpace is a slink:VkColorSpaceKHR value specifying the
* pname:imageColorSpace is a elink:VkColorSpaceKHR value specifying the
way the swapchain interprets image data.
* pname:imageExtent is the size (in pixels) of the swapchain image(s).
The behavior is platform-dependent if the image extent does not match
@ -210,15 +210,15 @@ associated with pname:oldSwapchain.
.Note
====
Multiple retired swapchains can: be associated with the same
sname:VkSurfaceKHR through multiple uses of sname:oldSwapchain that
sname:VkSurfaceKHR through multiple uses of pname:oldSwapchain that
outnumber calls to flink:vkDestroySwapchainKHR.
After sname:oldSwapchain is retired, the application can: pass to
After pname:oldSwapchain is retired, the application can: pass to
flink:vkQueuePresentKHR any images it had already acquired from
sname:oldSwapchain.
pname:oldSwapchain.
E.g., an application may present an image from the old swapchain before an
image from the new swapchain is ready to be presented.
As usual, flink:vkQueuePresentKHR may: fail if sname:oldSwapchain has
As usual, flink:vkQueuePresentKHR may: fail if pname:oldSwapchain has
entered a state that causes ename:VK_ERROR_OUT_OF_DATE_KHR to be returned.
ifdef::VK_KHR_shared_presentable_image[]
@ -377,8 +377,8 @@ endif::VK_VERSION_1_1[]
--
include::../../api/flags/VkSwapchainCreateFlagsKHR.txt[]
sname:VkSwapchainCreateFlagsKHR is a bitmask type for setting a mask of zero
or more slink:VkSwapchainCreateFlagBitsKHR.
tname:VkSwapchainCreateFlagsKHR is a bitmask type for setting a mask of zero
or more elink:VkSwapchainCreateFlagBitsKHR.
--
ifdef::VK_VERSION_1_1,VK_KHR_device_group[]
@ -581,7 +581,7 @@ its main rendering loop.
====
The implementation will have already allocated and bound the memory backing
the sname:VkImages returned by fname:vkGetSwapchainImagesKHR.
the sname:VkImage objects returned by fname:vkGetSwapchainImagesKHR.
The memory for each image will not alias with the memory for other images or
with any sname:VkDeviceMemory object.
As such, performing any operation affecting the binding of memory to a
@ -651,7 +651,7 @@ include::../../api/protos/vkAcquireNextImageKHR.txt[]
of slink:VkSurfaceCapabilitiesKHR::pname:minImageCount as returned by a
call to flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR with the
pname:surface used to create pname:swapchain, pname:timeout must: not be
ename:UINT64_MAX
code:UINT64_MAX
****
include::../../validity/protos/vkAcquireNextImageKHR.txt[]
@ -673,7 +673,7 @@ ename:VK_NOT_READY if no image is available.
If the specified timeout period expires before an image is acquired,
fname:vkAcquireNextImageKHR returns ename:VK_TIMEOUT.
If pname:timeout is ename:UINT64_MAX, the timeout period is treated as
If pname:timeout is code:UINT64_MAX, the timeout period is treated as
infinite, and fname:vkAcquireNextImageKHR will block until an image is
acquired or an error occurs.
@ -682,12 +682,12 @@ application has currently acquired (but not yet presented) is less than or
equal to the difference between the number of images in pname:swapchain and
the value of slink:VkSurfaceCapabilitiesKHR::pname:minImageCount.
If the number of currently acquired images is greater than this,
fname:vkAcquireNextImage should: not be called; if it is, pname:timeout
must: not be ename:UINT64_MAX.
fname:vkAcquireNextImageKHR should: not be called; if it is, pname:timeout
must: not be code:UINT64_MAX.
If an image is acquired successfully, fname:vkAcquireNextImage must: either
return ename:VK_SUCCESS, or ename:VK_SUBOPTIMAL_KHR if the swapchain no
longer matches the surface properties exactly, but can: still be used for
If an image is acquired successfully, fname:vkAcquireNextImageKHR must:
either return ename:VK_SUCCESS, or ename:VK_SUBOPTIMAL_KHR if the swapchain
no longer matches the surface properties exactly, but can: still be used for
presentation.
[NOTE]
@ -784,7 +784,7 @@ pname:timeout provided:
* ename:VK_NOT_READY is returned if pname:timeout is zero and no image was
available.
* ename:VK_TIMEOUT is returned if pname:timeout is greater than zero and
less than `UINT64_MAX`, and no image became available within the time
less than code:UINT64_MAX, and no image became available within the time
allowed.
* ename:VK_SUBOPTIMAL_KHR is returned if an image became available, and
the swapchain no longer matches the surface properties exactly, but can:
@ -854,7 +854,7 @@ include::../../api/protos/vkAcquireNextImage2KHR.txt[]
slink:VkSurfaceCapabilitiesKHR::pname:minImageCount as returned by a
call to flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR with the
pname:surface used to create pname:swapchain, the pname:timeout member
of pname:pAcquireInfo must: not be ename:UINT64_MAX
of pname:pAcquireInfo must: not be code:UINT64_MAX
****
include::../../validity/protos/vkAcquireNextImage2KHR.txt[]

View File

@ -11,8 +11,8 @@ include::../../api/protos/vkCmdReserveSpaceForCommandsNVX.txt[]
* pname:commandBuffer is the secondary command buffer in which the space
for device-generated commands is reserved.
* pname:pProcessCommandsInfo is a pointer to an instance of the
slink:vkCmdReserveSpaceForCommandsNVX structure containing parameters
affecting the reservation of command buffer space.
slink:VkCmdReserveSpaceForCommandsInfoNVX structure containing
parameters affecting the reservation of command buffer space.
.Valid Usage
****
@ -105,8 +105,8 @@ include::../../api/structs/VkCmdProcessCommandsInfoNVX.txt[]
pname:sequencesCountBuffer where the count value is stored.
* pname:sequencesIndexBuffer must: be set if
pname:indirectCommandsLayout's
ename:VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT is set and
provides the used sequence indices as ftext:uint32_t array.
ename:VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX is set
and provides the used sequence indices as ftext:uint32_t array.
Otherwise it must: be dlink:VK_NULL_HANDLE.
* pname:sequencesIndexOffset is the byte offset into
pname:sequencesIndexBuffer where the index values start.

View File

@ -38,7 +38,7 @@ void cmdProcessAllSequences(cmd, objectTable, indirectCommandsLayout, pIndirectC
The processing of each sequence is considered stateless, therefore all state
changes must: occur prior work provoking commands within the sequence.
A single sequence is either strictly targeting
sname:VK_PIPELINE_BIND_POINT_GRAPHICS or
ename:VK_PIPELINE_BIND_POINT_GRAPHICS or
ename:VK_PIPELINE_BIND_POINT_COMPUTE.
The primary input data for each token is provided through sname:VkBuffer
@ -253,7 +253,7 @@ include::../../api/structs/VkIndirectCommandsLayoutCreateInfoNVX.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:pipelineBindPoint is the slink:VkPipelineBindPoint that this
* pname:pipelineBindPoint is the elink:VkPipelineBindPoint that this
layout targets.
* pname:flags is a bitmask of
elink:VkIndirectCommandsLayoutUsageFlagBitsNVX specifying usage hints of
@ -343,8 +343,8 @@ include::../../api/enums/VkIndirectCommandsLayoutUsageFlagBitsNVX.txt[]
--
include::../../api/flags/VkIndirectCommandsLayoutUsageFlagsNVX.txt[]
sname:VkIndirectCommandsLayoutUsageFlagsNVX is a bitmask type for setting a
mask of zero or more slink:VkIndirectCommandsLayoutUsageFlagBitsNVX.
tname:VkIndirectCommandsLayoutUsageFlagsNVX is a bitmask type for setting a
mask of zero or more elink:VkIndirectCommandsLayoutUsageFlagBitsNVX.
--
[open,refpage='vkDestroyIndirectCommandsLayoutNVX',desc='Destroy an object table',type='protos']

View File

@ -156,8 +156,8 @@ include::../../api/enums/VkObjectEntryUsageFlagBitsNVX.txt[]
--
include::../../api/flags/VkObjectEntryUsageFlagsNVX.txt[]
sname:VkObjectEntryUsageFlagsNVX is a bitmask type for setting a mask of
zero or more slink:VkObjectEntryUsageFlagBitsNVX.
tname:VkObjectEntryUsageFlagsNVX is a bitmask type for setting a mask of
zero or more elink:VkObjectEntryUsageFlagBitsNVX.
--
[open,refpage='vkDestroyObjectTableNVX',desc='Destroy an object table',type='protos']
@ -238,7 +238,7 @@ Common to all resource entries are:
include::../../api/structs/VkObjectTableEntryNVX.txt[]
* pname:type defines the entry type
* pname:flags defines which slink:VkPipelineBindPoint the resource can be
* pname:flags defines which elink:VkPipelineBindPoint the resource can be
used with.
Some entry types allow only a single flag to be set.
@ -312,7 +312,7 @@ include::../../api/structs/VkObjectTableIndexBufferEntryNVX.txt[]
* pname:buffer specifies the slink:VkBuffer that can be bound as index
buffer
* pname:indexType specifies the slink:VkIndexType used with this index
* pname:indexType specifies the elink:VkIndexType used with this index
buffer
.Valid Usage
@ -331,7 +331,7 @@ include::../../api/structs/VkObjectTablePushConstantEntryNVX.txt[]
* pname:pipelineLayout specifies the slink:VkPipelineLayout that the
pushconstants are used with
* pname:stageFlags specifies the slink:VkShaderStageFlags that the
* pname:stageFlags specifies the tlink:VkShaderStageFlags that the
pushconstants are used with
.Valid Usage
@ -355,7 +355,7 @@ include::../../api/protos/vkUnregisterObjectsNVX.txt[]
unregistered.
* pname:objectCount is the number of resources being removed from the
object table.
* pname:pObjectEntryType provides an array of slink:VkObjectEntryTypeNVX
* pname:pObjectEntryType provides an array of elink:VkObjectEntryTypeNVX
for the resources being removed.
* pname:pObjectIndices provides the array of object indices to be removed.

View File

@ -10,7 +10,7 @@ Each diagnostic checkpoint command is executed at two pipeline stages:
ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, and
ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT.
If the device is lost, the application can: call
slink:vkGetQueueCheckpointDataNV to retrieve checkpoint data associated with
flink:vkGetQueueCheckpointDataNV to retrieve checkpoint data associated with
both pipeline stages, indicating the range of diagnostic checkpoints that
are currently in the execution pipeline on the device.
@ -18,7 +18,7 @@ are currently in the execution pipeline on the device.
--
Device diagnostic checkpoints are inserted into the command stream by
calling slink:vkCmdSetCheckpointNV.
calling flink:vkCmdSetCheckpointNV.
include::../../api/protos/vkCmdSetCheckpointNV.txt[]
@ -40,12 +40,12 @@ If the device encounters an error during execution, the implementation will
return a ename:VK_ERROR_DEVICE_LOST error to the application at a certain
point during host execution.
When this happens, the application can: call
slink:vkGetQueueCheckpointDataNV to retrieve information on the most recent
flink:vkGetQueueCheckpointDataNV to retrieve information on the most recent
diagnostic checkpoints that were executed by the device.
include::../../api/protos/vkGetQueueCheckpointDataNV.txt[]
* pname:queue is the elink:VkQueue object the caller would like to
* pname:queue is the slink:VkQueue object the caller would like to
retrieve checkpoint data for
* pname:pCheckpointDataCount is a pointer to an integer related to the
number of checkpoint markers available or queried, as described below.
@ -89,6 +89,6 @@ include::../../validity/structs/VkCheckpointDataNV.txt[]
Note that the stages at which a checkpoint marker can: be executed are
implementation-defined and can: be queried by calling
slink:vkGetPhysicalDeviceQueueFamilyProperties2.
flink:vkGetPhysicalDeviceQueueFamilyProperties2.
--

View File

@ -19,7 +19,7 @@ include::../../api/protos/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.txt
* pname:flags is a bitmask describing additional parameters of the image,
corresponding to slink:VkImageCreateInfo::pname:flags.
* pname:externalHandleType is either one of the bits from
slink:VkExternalMemoryHandleTypeFlagBitsNV, or 0.
elink:VkExternalMemoryHandleTypeFlagBitsNV, or 0.
* pname:pExternalImageFormatProperties points to an instance of the
slink:VkExternalImageFormatPropertiesNV structure in which capabilities
are returned.
@ -72,7 +72,7 @@ include::../../validity/structs/VkExternalImageFormatPropertiesNV.txt[]
--
Bits which can: be set in
slink:VkExternalMemoryFeatureFlagBitsNV::pname:externalMemoryFeatures,
slink:VkExternalImageFormatPropertiesNV::pname:externalMemoryFeatures,
indicating properties of the external memory handle type, are:
include::../../api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[]
@ -91,6 +91,6 @@ include::../../api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[]
--
include::../../api/flags/VkExternalMemoryFeatureFlagsNV.txt[]
sname:VkExternalMemoryFeatureFlagsNV is a bitmask type for setting a mask of
zero or more slink:VkExternalMemoryFeatureFlagBitsNV.
tname:VkExternalMemoryFeatureFlagsNV is a bitmask type for setting a mask of
zero or more elink:VkExternalMemoryFeatureFlagBitsNV.
--

View File

@ -70,7 +70,7 @@ endif::editing-notes[]
--
include::../../api/flags/VkExternalMemoryHandleTypeFlagsNV.txt[]
sname:VkExternalMemoryHandleTypeFlagsNV is a bitmask type for setting a mask
of zero or more slink:VkExternalMemoryHandleTypeFlagBitsNV.
tname:VkExternalMemoryHandleTypeFlagsNV is a bitmask type for setting a mask
of zero or more elink:VkExternalMemoryHandleTypeFlagBitsNV.
--

View File

@ -173,7 +173,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
@ -386,7 +386,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****

View File

@ -67,16 +67,16 @@ include::../../api/structs/VkAccelerationStructureCreateInfoNV.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:compactedSize is the size from the result of
flink:vkCmdWriteAccelerationStructurePropertiesNV, if this acceleration
flink:vkCmdWriteAccelerationStructuresPropertiesNV, if this acceleration
structure is going to be the target of a compacting copy.
* pname:info contains the elink:VkAccelerationStructureInfoNV information
* pname:info contains the slink:VkAccelerationStructureInfoNV information
for the acceleration structure's parameters
.Valid Usage
****
* [[VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421]]
If pname:compactedSize is not `0` then both
sname:info::pname:geometryCount and sname:info::pname:instanceCount
pname:info::pname:geometryCount and pname:info::pname:instanceCount
must: be `0`
****
@ -92,18 +92,18 @@ include::../../api/structs/VkAccelerationStructureInfoNV.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:type is a ename:VkAccelerationStructureTypeBitsNV value that
specifies the type of acceleration structure that will be created.
* pname:flags is a set of ename:VkBuildAccelerationStructureFlagBitsNV
values that specify additional parameters of the acceleration structure.
* pname:type is a elink:VkAccelerationStructureMemoryRequirementsTypeNV
value specifying the type of acceleration structure that will be
created.
* pname:flags is a bitmask of elink:VkBuildAccelerationStructureFlagBitsNV
specifying additional parameters of the acceleration structure.
* pname:instanceCount specifies the number of instances that will be in
the new acceleration structure
* pname:geometryCount specifies the number of geometries that will be in
the new acceleration structure
* pname:pGeometries is an array of ename:VkGeometryNV structures which
* pname:pGeometries is an array of slink:VkGeometryNV structures which
contain the scene data being passed into the acceleration structure.
sname:VkAccelerationStructureInfoNV contains information that's used both
for acceleration structure creation with
fname:vkCreateAccelerationStructureNV and in combination with the actual
@ -137,6 +137,7 @@ fname:vkCmdBuildAccelerationStructureNV.
include::../../validity/structs/VkAccelerationStructureInfoNV.txt[]
--
[open,refpage='VkBuildAccelerationStructureFlagBitsNV',desc='Bitmask specifying additional parameters for acceleration structure builds',type='enums']
--
@ -152,7 +153,7 @@ include::../../api/enums/VkBuildAccelerationStructureFlagBitsNV.txt[]
update with a source that also had this flag set.
* ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV indicates
that the specified acceleration structure may: act as the source for
flink:vkCmdCopyAccelerationStructureNN with pname:mode of
flink:vkCmdCopyAccelerationStructureNV with pname:mode of
ename:VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV to produce a
compacted acceleration structure.
* ename:VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV indicates
@ -178,10 +179,8 @@ ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV may: take more
time and memory than a normal build, so should only be used when those
features are used.
====
--
[open,refpage='VkGeometryNV',desc='Structure specifying a geometry in a bottom-level acceleration structure',type='structs']
--
@ -222,7 +221,7 @@ additional parameters for acceleration structure builds, are:
include::../../api/enums/VkGeometryFlagBitsNV.txt[]
* ename:VK_GEOMETRY_OPAQUE_BIT_NV indicates that this geometry does not
use any hit shaders.
invoke any-hit shaders even if present in a hit group.
* ename:VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV indicates that
the implementation must: only call any hit a single time for each
primitive in this geometry.
@ -231,7 +230,6 @@ include::../../api/enums/VkGeometryFlagBitsNV.txt[]
--
[open,refpage='VkGeometryDataNV',desc='Structure specifying geometry in a bottom-level acceleration structure',type='structs']
--
@ -341,12 +339,11 @@ include::../../api/structs/VkGeometryAABBNV.txt[]
****
The AABB data in memory is 6 32-bit floats consisting of the minimum x, y,
and z values followed by the maximum x, y, and x values.
and z values followed by the maximum x, y, and z values.
include::../../validity/structs/VkGeometryAABBNV.txt[]
--
[open,refpage='vkDestroyAccelerationStructureNV',desc='Destroy an acceleration structure object',type='protos']
--
@ -440,7 +437,6 @@ include::../../api/enums/VkAccelerationStructureMemoryRequirementsTypeNV.txt[]
--
[open,refpage='vkBindAccelerationStructureMemoryNV',desc='Bind acceleration structure memory',type='protos']
--
@ -537,7 +533,6 @@ include::../../api/structs/VkBindAccelerationStructureMemoryInfoNV.txt[]
include::../../validity/structs/VkBindAccelerationStructureMemoryInfoNV.txt[]
--
[open,refpage='vkGetAccelerationStructureHandleNV',desc='Get opaque acceleration structure handle',type='protos']
--

View File

@ -18,6 +18,7 @@ image::images/raypipe.svg[align="center",title="Ray tracing Pipeline",opts="{ima
Interaction between the different shader stages in the ray tracing pipeline
****
[[raytracing-commands]]
== Ray Tracing Commands
_Ray tracing commands_ provoke work in the raytacing pipeline.
@ -29,11 +30,11 @@ tracing commands are recorded in that command buffer.
Each ray tracing call operates on a set of shader stages that are specific
to the ray tracing pipeline as well as a set of
sname:VkAccelerationStructure objects which describe the scene geometry in
sname:VkAccelerationStructureNV objects which describe the scene geometry in
an implementation-specific way.
The relationship between the ray tracing pipeline object and the
acceleration structures is passed into the raytacing command in a
sname:VkBuffer object known as a _shader binding table_.
slink:VkBuffer object known as a _shader binding table_.
During execution, control alternates between scheduling and other
operations.
@ -245,7 +246,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -253,6 +254,7 @@ endif::VK_NV_corner_sampled_image[]
include::../../validity/protos/vkCmdTraceRaysNV.txt[]
--
[[shader-binding-table]]
== Shader Binding Table
@ -264,7 +266,7 @@ structure.
In addition, it contains the resources accessed by each shader, including
indices of textures and constants.
The application allocates and manages _shader binding tables_ as
elink:VkBuffer objects.
slink:VkBuffer objects.
Each entry in the shader binding table consists of pname:shaderHeaderSize
bytes of data as queried by vkGetRayTracingShaderHandlesNV to refer to the
@ -277,6 +279,7 @@ fname:vkCmdTraceRaysNV.
Shader binding tables are read-only in shaders that are executing on the ray
tracing pipeline.
[[shader-binding-table-indexing-rules]]
=== Indexing Rules
@ -290,13 +293,17 @@ The application must: organize the contents of the shader binding table's
memory in a way that application of the indexing rules will lead to correct
records.
==== Ray Generation Shaders
Only one ray generation shader is executed per ray tracing dispatch.
Its location is passed into fname:vkCmdTraceRaysNV using the
pname:raygenShaderBindingTableBuffer and
pname:raygenShaderBindingTableOffset parameters - there is no indexing.
==== Hit Shaders
The base for the computation of intersection, any hit and closest hit shader
locations is the pname:instanceShaderBindingTableRecordOffset value stored
with each instance of a top-level acceleration structure.
@ -308,7 +315,7 @@ In the following rule, _geometryIndex_ refers to the location of the
geometry within the instance.
The pname:sbtRecordStride and pname:sbtRecordOffset values are passed in as
parameters to fname:traceNV() calls made in the shaders.
parameters to code:traceNV() calls made in the shaders.
See Section 8.19 (Ray Tracing Functions) of the OpenGL Shading Language
Specification for more details.
@ -322,7 +329,9 @@ The complete rule to compute a hit shader binding table record index is:
hitProgramShaderBindingTableBaseIndex {plus} geometryIndex {times}
sbtRecordStride {plus} sbtRecordOffset#
==== Miss Shaders
A Miss shader is executed whenever a ray query fails to find an intersection
for the given scene geometry.
Multiple miss shaders can be executed throughout a ray tracing dispatch.
@ -331,8 +340,8 @@ The base for the computation of miss shader locations is
pname:missProgramShaderBindingTableBaseIndex, a base index passed into
fname:vkCmdTraceRaysNV.
The pname:sbtRecordOffset value is passed in as parameters to
fname:traceNV() calls made in the shaders.
The pname:sbtRecordOffset value is passed in as parameters to code:traceNV()
calls made in the shaders.
See Section 8.19 (Ray Tracing Functions) of the OpenGL Shading Language
Specification for more details.
@ -340,8 +349,10 @@ The complete rule to compute a miss shader binding table record address is:
:: [eq]#missIndex {times} missShaderBindingStride {plus} sbtRecordOffset#
[[acceleration-structure]]
== Acceleration Structures
_Acceleration structures_ are data structures used by the implementation to
efficiently manage the scene geometry as it is traversed during a ray
tracing query.
@ -362,22 +373,24 @@ The diagram shows the relationship between top and bottom level acceleration
structures.
****
[[acceleration-structure-instance]]
=== Instances
_Instances_ are found in top level acceleration structures and contain data
that refer to a single bottom-level acceleration structure, a transform
matrix, and shading information.
Multiple instances may point to a single bottom level acceleration
structure.
An instance is defined in a VkBuffer by a structure consisting of 64 bytes
of data.
An instance is defined in a slink:VkBuffer by a structure consisting of 64
bytes of data.
* pname:transform is 12 floats representing a 4x3 transform matrix in
row-major order
* pname:instanceCustomIndex The low 24 bits of a 32-bit integer after the
transform.
This value appears in the builtin gl_InstanceCustomIndexNV
This value appears in the builtin code:gl_InstanceCustomIndexNV
* pname:mask The high 8 bits of the same integer as instanceCustomIndex.
This is the visibility mask.
The instance can only be hit if rayMask & instance.mask != 0
@ -400,7 +413,7 @@ practice, this struct produces the layout described above:
---------------------------------------------------
struct VkGeometryInstanceNV {
float transform[12];
uint32_t instanceId : 24;
uint32_t instanceCustomIndex : 24;
uint32_t mask : 8;
uint32_t instanceOffset : 24;
uint32_t flags : 8;
@ -429,11 +442,13 @@ include::../../api/enums/VkGeometryInstanceFlagBitsNV.txt[]
* ename:VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV causes this instance to
act as though ename:VK_GEOMETRY_OPAQUE_BIT_NV were specified on all
geometries referenced by this instance.
This behavior can be overridden by the ray flag gl_RayFlagsNoOpaqueNV.
This behavior can be overridden by the ray flag
code:gl_RayFlagsNoOpaqueNV.
* ename:VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV causes this instance
to act as though ename:VK_GEOMETRY_NO_OPAQUE_BIT_NV were specified on
to act as though ename:VK_GEOMETRY_OPAQUE_BIT_NV were not specified on
all geometries referenced by this instance.
This behavior can be overridden by the ray flag gl_RayFlagsOpaqueNV.
This behavior can be overridden by the ray flag
code:gl_RayFlagsOpaqueNV.
ename:VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV and
ename:VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV must: not be used in the same
@ -441,21 +456,29 @@ flag.
--
[[acceleration-structure-geometry]]
=== Geometry
_Geometries_ refer to a triangle or axis-aligned bounding box.
[[acceleration-structure-top-level]]
=== Top Level Acceleration Structures
Opaque acceleration structure for an array of instances.
The descriptor referencing this is the starting point for tracing
[[acceleration-structure-bottom-level]]
=== Bottom Level Acceleration Structures
Opaque acceleration structure for an array of geometries.
[[acceleration-structure-building]]
=== Building Acceleration Structures
[open,refpage='vkCmdBuildAccelerationStructureNV',desc='Build an acceleration structure',type='protos']
--
@ -478,7 +501,7 @@ include::../../api/protos/vkCmdBuildAccelerationStructureNV.txt[]
* pname:dst points to the target acceleration structure for the build.
* pname:src points to an existing acceleration structure that can be used
to update the pname:dst acceleration structure.
* pname:scratch is the sname:VkBuffer that will be used as scratch memory
* pname:scratch is the slink:VkBuffer that will be used as scratch memory
for the build.
* pname:scratchOffset is the offset in bytes relative to the start of
pname:scratch that will be used as scratch memory.
@ -529,6 +552,7 @@ include::../../api/protos/vkCmdBuildAccelerationStructureNV.txt[]
include::../../validity/protos/vkCmdBuildAccelerationStructureNV.txt[]
--
[[acceleration-structure-copying]]
=== Copying Acceleration Structures
@ -595,7 +619,7 @@ include::../../api/protos/vkCmdCopyAccelerationStructureNV.txt[]
recorded.
* pname:dst points to the target acceleration structure for the copy
* pname:src points to the source acceleration structure for the copy
* pname:mode is a ename:VkCopyAccelerationStructureModeNV value that
* pname:mode is a elink:VkCopyAccelerationStructureModeNV value that
specifies additional operations to perform during the copy.
.Valid Usage
@ -616,7 +640,7 @@ include::../../validity/protos/vkCmdCopyAccelerationStructureNV.txt[]
[open,refpage='VkCopyAccelerationStructureModeNV',desc='Acceleration structure copy mode',type='enums']
--
Possible values of slink:vkCmdCopyAccelerationStructureNV::pname:mode,
Possible values of flink:vkCmdCopyAccelerationStructureNV::pname:mode,
specifying additional operations to perform during the copy, are:
include::../../api/enums/VkCopyAccelerationStructureModeNV.txt[]
@ -630,7 +654,7 @@ include::../../api/enums/VkCopyAccelerationStructureModeNV.txt[]
compact version of an acceleration structure pname:src into pname:dst.
The acceleration structure pname:dst must: have been created with a
pname:compactedSize corresponding to the one returned by
slink:vkCmdWriteAccelerationStructurePropertiesNV after the build of the
acceleration structure specified by pname:src.
flink:vkCmdWriteAccelerationStructuresPropertiesNV after the build of
the acceleration structure specified by pname:src.
--

View File

@ -40,8 +40,6 @@ endif::VK_KHR_shared_presentable_image[]
structures that describe a range of mipmap levels, array layers, and
aspects to be cleared, as described in <<resources-image-views,Image
Views>>.
The pname:aspectMask of all image subresource ranges must: only include
ename:VK_IMAGE_ASPECT_COLOR_BIT.
Each specified range in pname:pRanges is cleared to the value specified by
pname:pColor.
@ -79,6 +77,10 @@ ifdef::VK_KHR_shared_presentable_image[]
ename:VK_IMAGE_LAYOUT_GENERAL, or
ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
endif::VK_KHR_shared_presentable_image[]
* [[VUID-vkCmdClearColorImage-aspectMask-02498]]
The slink:VkImageSubresourceRange::pname:aspectMask members of the
elements of the pname:pRanges array must: each only include
ename:VK_IMAGE_ASPECT_COLOR_BIT
* [[VUID-vkCmdClearColorImage-baseMipLevel-01470]]
The slink:VkImageSubresourceRange::pname:baseMipLevel members of the
elements of the pname:pRanges array must: each be less than the
@ -138,10 +140,6 @@ include::../api/protos/vkCmdClearDepthStencilImage.txt[]
structures that describe a range of mipmap levels, array layers, and
aspects to be cleared, as described in <<resources-image-views,Image
Views>>.
The pname:aspectMask of each image subresource range in pname:pRanges
can: include ename:VK_IMAGE_ASPECT_DEPTH_BIT if the image format has a
depth component, and ename:VK_IMAGE_ASPECT_STENCIL_BIT if the image
format has a stencil component.
.Valid Usage
****
@ -164,6 +162,16 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
pname:imageLayout must: be either of
ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or
ename:VK_IMAGE_LAYOUT_GENERAL
* [[VUID-vkCmdClearDepthStencilImage-aspectMask-02499]]
The slink:VkImageSubresourceRange::pname:aspectMask members of the
elements of the pname:pRanges array must: each only include
ename:VK_IMAGE_ASPECT_DEPTH_BIT if the image format has a depth
component
* [[VUID-vkCmdClearDepthStencilImage-aspectMask-02500]]
The slink:VkImageSubresourceRange::pname:aspectMask members of the
elements of the pname:pRanges array must: each only include
ename:VK_IMAGE_ASPECT_STENCIL_BIT if the image format has a stencil
component
* [[VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474]]
The slink:VkImageSubresourceRange::pname:baseMipLevel members of the
elements of the pname:pRanges array must: each be less than the
@ -224,6 +232,9 @@ include::../api/protos/vkCmdClearAttachments.txt[]
* pname:pAttachments is a pointer to an array of slink:VkClearAttachment
structures defining the attachments to clear and the clear values to
use.
If any attachment to be cleared in the current subpass is
ename:VK_ATTACHMENT_UNUSED, then the clear has no effect on that
attachment.
* pname:rectCount is the number of entries in the pname:pRects array.
* pname:pRects points to an array of slink:VkClearRect structures defining
regions within each selected attachment to clear.
@ -236,11 +247,21 @@ attachments and the command parameters.
.Valid Usage
****
* [[VUID-vkCmdClearAttachments-aspectMask-00015]]
* [[VUID-vkCmdClearAttachments-aspectMask-02501]]
If the pname:aspectMask member of any element of pname:pAttachments
contains ename:VK_IMAGE_ASPECT_COLOR_BIT, the pname:colorAttachment
member of that element must: refer to a valid color attachment in the
current subpass
contains ename:VK_IMAGE_ASPECT_COLOR_BIT, then the pname:colorAttachment
member of that element must: either refer to a color attachment which is
ename:VK_ATTACHMENT_UNUSED, or must: be a valid color attachment.
* [[VUID-vkCmdClearAttachments-aspectMask-02502]]
If the pname:aspectMask member of any element of pname:pAttachments
contains ename:VK_IMAGE_ASPECT_DEPTH_BIT, then the current subpass'
depth/stencil attachment must: either be ename:VK_ATTACHMENT_UNUSED, or
must: have a depth component
* [[VUID-vkCmdClearAttachments-aspectMask-02503]]
If the pname:aspectMask member of any element of pname:pAttachments
contains ename:VK_IMAGE_ASPECT_STENCIL_BIT, then the current subpass'
depth/stencil attachment must: either be ename:VK_ATTACHMENT_UNUSED, or
must: have a stencil component
* [[VUID-vkCmdClearAttachments-pRects-00016]]
The rectangular region specified by each element of pname:pRects must:
be contained within the render area of the current render pass instance
@ -250,6 +271,14 @@ attachments and the command parameters.
* [[VUID-vkCmdClearAttachments-layerCount-01934]]
The pname:layerCount member of each element of pname:pRects must: not be
`0`
ifdef::VK_VERSION_1_1[]
* [[VUID-vkCmdClearAttachments-commandBuffer-02504]]
If pname:commandBuffer is an unprotected command buffer, then each
attachment to be cleared must: not be a protected image.
* [[VUID-vkCmdClearAttachments-commandBuffer-02505]]
If pname:commandBuffer is a protected command buffer, then each
attachment to be cleared must: not be an unprotected image.
endif::VK_VERSION_1_1[]
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-vkCmdClearAttachments-baseArrayLayer-00018]]
If the render pass instance this is recorded in uses multiview, then
@ -287,20 +316,11 @@ include::../api/structs/VkClearAttachment.txt[]
* pname:aspectMask is a mask selecting the color, depth and/or stencil
aspects of the attachment to be cleared.
pname:aspectMask can: include ename:VK_IMAGE_ASPECT_COLOR_BIT for color
attachments, ename:VK_IMAGE_ASPECT_DEPTH_BIT for depth/stencil
attachments with a depth component, and
ename:VK_IMAGE_ASPECT_STENCIL_BIT for depth/stencil attachments with a
stencil component.
If the subpass's depth/stencil attachment is ename:VK_ATTACHMENT_UNUSED,
then the clear has no effect.
* pname:colorAttachment is only meaningful if
ename:VK_IMAGE_ASPECT_COLOR_BIT is set in pname:aspectMask, in which
case it is an index to the pname:pColorAttachments array in the
slink:VkSubpassDescription structure of the current subpass which
selects the color attachment to clear.
If pname:colorAttachment is ename:VK_ATTACHMENT_UNUSED then the clear
has no effect.
* pname:clearValue is the color or depth/stencil value to clear the
attachment to, as described in <<clears-values,Clear Values>> below.
@ -331,14 +351,6 @@ ifdef::VK_EXT_image_drm_format_modifier[]
endif::VK_EXT_image_drm_format_modifier[]
* [[VUID-VkClearAttachment-clearValue-00021]]
pname:clearValue must: be a valid sname:VkClearValue union
ifdef::VK_VERSION_1_1[]
* [[VUID-VkClearAttachment-commandBuffer-01809]]
If pname:commandBuffer is an unprotected command buffer, then the
attachment to be cleared must: not be a protected image.
* [[VUID-VkClearAttachment-commandBuffer-01810]]
If pname:commandBuffer is a protected command buffer, then the
attachment to be cleared must: not be an unprotected image.
endif::VK_VERSION_1_1[]
****
include::../validity/structs/VkClearAttachment.txt[]

View File

@ -229,8 +229,8 @@ endif::VK_VERSION_1_1[]
--
include::../api/flags/VkCommandPoolCreateFlags.txt[]
sname:VkCommandPoolCreateFlags is a bitmask type for setting a mask of zero
or more slink:VkCommandPoolCreateFlagBits.
tname:VkCommandPoolCreateFlags is a bitmask type for setting a mask of zero
or more elink:VkCommandPoolCreateFlagBits.
--
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
@ -310,7 +310,7 @@ or the equivalent
include::../api/flags/VkCommandPoolTrimFlagsKHR.txt[]
endif::VK_KHR_maintenance1[]
sname:VkCommandPoolTrimFlags is a bitmask type for setting a mask, but is
tname:VkCommandPoolTrimFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -366,8 +366,8 @@ include::../api/enums/VkCommandPoolResetFlagBits.txt[]
--
include::../api/flags/VkCommandPoolResetFlags.txt[]
sname:VkCommandPoolResetFlags is a bitmask type for setting a mask of zero
or more slink:VkCommandPoolResetFlagBits.
tname:VkCommandPoolResetFlags is a bitmask type for setting a mask of zero
or more elink:VkCommandPoolResetFlagBits.
--
[open,refpage='vkDestroyCommandPool',desc='Destroy a command pool object',type='protos']
@ -535,8 +535,8 @@ include::../api/enums/VkCommandBufferResetFlagBits.txt[]
--
include::../api/flags/VkCommandBufferResetFlags.txt[]
sname:VkCommandBufferResetFlags is a bitmask type for setting a mask of zero
or more slink:VkCommandBufferResetFlagBits.
tname:VkCommandBufferResetFlags is a bitmask type for setting a mask of zero
or more elink:VkCommandBufferResetFlagBits.
--
[open,refpage='vkFreeCommandBuffers',desc='Free command buffers',type='protos']
@ -678,8 +678,8 @@ include::../api/enums/VkCommandBufferUsageFlagBits.txt[]
--
include::../api/flags/VkCommandBufferUsageFlags.txt[]
sname:VkCommandBufferUsageFlags is a bitmask type for setting a mask of zero
or more slink:VkCommandBufferUsageFlagBits.
tname:VkCommandBufferUsageFlags is a bitmask type for setting a mask of zero
or more elink:VkCommandBufferUsageFlagBits.
--
[open,refpage='VkCommandBufferInheritanceInfo',desc='Structure specifying command buffer inheritance info',type='structs']
@ -1225,7 +1225,7 @@ ifdef::VK_VERSION_1_1[]
[open,refpage='VkProtectedSubmitInfo',desc='Structure indicating whether the submission is protected',type='structs']
--
If the ename:pNext chain of slink:VkSubmitInfo includes a
If the pname:pNext chain of slink:VkSubmitInfo includes a
sname:VkProtectedSubmitInfo structure, then the structure indicates whether
the batch is protected.
The sname:VkProtectedSubmitInfo structure is defined as:

View File

@ -74,9 +74,9 @@ endif::VK_EXT_debug_utils[]
ifdef::VK_EXT_validation_cache[]
| ename:VK_OBJECT_TYPE_VALIDATION_CACHE_EXT | slink:VkValidationCacheEXT
endif::VK_EXT_validation_cache[]
ifdef::VK_NVX_raytracing[]
| ename:VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX | slink:VkAccelerationStructureNVX
endif::VK_NVX_raytracing[]
ifdef::VK_NV_ray_tracing[]
| ename:VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV | slink:VkAccelerationStructureNV
endif::VK_NV_ray_tracing[]
|====
--

View File

@ -474,8 +474,8 @@ endif::VK_KHR_push_descriptor[]
--
include::../api/flags/VkDescriptorSetLayoutCreateFlags.txt[]
sname:VkDescriptorSetLayoutCreateFlags is a bitmask type for setting a mask
of zero or more slink:VkDescriptorSetLayoutCreateFlagBits.
tname:VkDescriptorSetLayoutCreateFlags is a bitmask type for setting a mask
of zero or more elink:VkDescriptorSetLayoutCreateFlagBits.
--
[open,refpage='VkDescriptorSetLayoutBinding',desc='Structure specifying a descriptor set layout binding',type='structs']
@ -671,7 +671,7 @@ endif::VK_KHR_push_descriptor[]
ifdef::VK_EXT_inline_uniform_block[]
* [[VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingInlineUniformBlockUpdateAfterBind-02211]]
If
slink:VkPhysicalDeviceInlineUniformBlockFeatureEXT::pname:descriptorBindingInlineUniformBlockUpdateAfterBind
slink:VkPhysicalDeviceInlineUniformBlockFeaturesEXT::pname:descriptorBindingInlineUniformBlockUpdateAfterBind
is not enabled, all bindings with descriptor type
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must: not use
ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT
@ -1564,7 +1564,7 @@ include::../validity/structs/VkPipelineLayoutCreateInfo.txt[]
--
include::../api/flags/VkPipelineLayoutCreateFlags.txt[]
sname:VkPipelineLayoutCreateFlags is a bitmask type for setting a mask, but
tname:VkPipelineLayoutCreateFlags is a bitmask type for setting a mask, but
is currently reserved for future use.
--
@ -2007,8 +2007,8 @@ endif::VK_EXT_descriptor_indexing[]
--
include::../api/flags/VkDescriptorPoolCreateFlags.txt[]
sname:VkDescriptorPoolCreateFlags is a bitmask type for setting a mask of
zero or more slink:VkDescriptorPoolCreateFlagBits.
tname:VkDescriptorPoolCreateFlags is a bitmask type for setting a mask of
zero or more elink:VkDescriptorPoolCreateFlagBits.
--
[open,refpage='VkDescriptorPoolSize',desc='Structure specifying descriptor pool size',type='structs']
@ -2365,7 +2365,7 @@ include::../validity/protos/vkResetDescriptorPool.txt[]
--
include::../api/flags/VkDescriptorPoolResetFlags.txt[]
sname:VkDescriptorPoolResetFlags is a bitmask type for setting a mask, but
tname:VkDescriptorPoolResetFlags is a bitmask type for setting a mask, but
is currently reserved for future use.
--
@ -2527,10 +2527,10 @@ ifdef::VK_EXT_inline_uniform_block[]
.Note
====
The same behavior applies to bindings with a descriptor type of
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK where pname:descriptorCount
specifies the number of bytes to update while pname:dstArrayElement
specifies the starting byte offset, thus in this case if the
pname:dstBinding has a smaller byte size than the sum of
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT where
pname:descriptorCount specifies the number of bytes to update while
pname:dstArrayElement specifies the starting byte offset, thus in this case
if the pname:dstBinding has a smaller byte size than the sum of
pname:dstArrayElement and pname:descriptorCount, then the remainder will be
used to update the subsequent binding - [eq]#pname:dstBinding+1# starting at
offset zero.
@ -3269,7 +3269,7 @@ or the equivalent
include::../api/flags/VkDescriptorUpdateTemplateCreateFlagsKHR.txt[]
endif::VK_KHR_descriptor_update_template[]
sname:VkDescriptorUpdateTemplateCreateFlags is a bitmask type for setting a
tname:VkDescriptorUpdateTemplateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--

View File

@ -348,8 +348,8 @@ If pname:deviceLUIDValid is ename:VK_FALSE, the values of pname:deviceLUID
and pname:deviceNodeMask are undefined:.
If pname:deviceLUIDValid is ename:VK_TRUE and Vulkan is running on the
Windows operating system, the contents of pname:deviceLUID can: be cast to
an sname:LUID object and must: be equal to the locally unique identifier of
a sname:IDXGIAdapter1 object that corresponds to pname:physicalDevice.
an code:LUID object and must: be equal to the locally unique identifier of a
code:IDXGIAdapter1 object that corresponds to pname:physicalDevice.
If pname:deviceLUIDValid is ename:VK_TRUE, pname:deviceNodeMask must:
contain exactly one bit.
If Vulkan is running on an operating system that supports the Direct3D 12
@ -658,8 +658,8 @@ For further details see <<devsandqueues-queues,Queues>>.
--
include::../api/flags/VkQueueFlags.txt[]
sname:VkQueueFlags is a bitmask type for setting a mask of zero or more
slink:VkQueueFlagBits.
tname:VkQueueFlags is a bitmask type for setting a mask of zero or more
elink:VkQueueFlagBits.
--
ifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
@ -958,7 +958,7 @@ ifdef::VK_AMD_negative_viewport_height[]
ifdef::VK_VERSION_1_1[]
* [[VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840]]
pname:ppEnabledExtensionNames must: not contain
code:VK_AMD_negative_viewport_height
`<<VK_AMD_negative_viewport_height>>`
endif::VK_VERSION_1_1[]
ifndef::VK_VERSION_1_1[]
ifdef::VK_KHR_maintenance1[]
@ -977,7 +977,7 @@ include::../validity/structs/VkDeviceCreateInfo.txt[]
--
include::../api/flags/VkDeviceCreateFlags.txt[]
sname:VkDeviceCreateFlags is a bitmask type for setting a mask, but is
tname:VkDeviceCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -1413,8 +1413,8 @@ endif::VK_VERSION_1_1[]
--
include::../api/flags/VkDeviceQueueCreateFlags.txt[]
sname:VkDeviceQueueCreateFlags is a bitmask type for setting a mask of zero
or more slink:VkDeviceQueueCreateFlagBits.
tname:VkDeviceQueueCreateFlags is a bitmask type for setting a mask of zero
or more elink:VkDeviceQueueCreateFlagBits.
--
ifdef::VK_EXT_global_priority[]
@ -1584,7 +1584,7 @@ pname:pQueue will return dlink:VK_NULL_HANDLE.
sname:VkDeviceQueueCreateInfo structure
* [[VUID-VkDeviceQueueInfo2-queueIndex-01843]]
pname:queueIndex must: be less than the number of queues created for the
specified queue family index and sname:VkDeviceQueueCreateFlags member
specified queue family index and tlink:VkDeviceQueueCreateFlags member
pname:flags equal to this pname:flags value when pname:device was
created, via the pname:queueCount member of the
sname:VkDeviceQueueCreateInfo structure

View File

@ -126,21 +126,21 @@ ifdef::VK_VERSION_1_1[]
* [[VUID-vkCmdDispatch-commandBuffer-01845]]
If pname:commandBuffer is a protected command buffer, and any pipeline
stage in the sname:VkPipeline object bound to
ename:VK_PIPELINE_POINT_COMPUTE writes to any image or buffer, that
ename:VK_PIPELINE_BIND_POINT_COMPUTE writes to any image or buffer, that
image or buffer must: not be an unprotected image or unprotected buffer.
* [[VUID-vkCmdDispatch-commandBuffer-01846]]
If pname:commandBuffer is a protected command buffer, and any pipeline
stage other than the compute pipeline stage in the sname:VkPipeline
object bound to ename:VK_PIPELINE_POINT_COMPUTE reads from any image or
buffer, the image or buffer must: not be a protected image or protected
buffer.
object bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE reads from any
image or buffer, the image or buffer must: not be a protected image or
protected buffer.
endif::VK_VERSION_1_1[]
ifdef::VK_NV_corner_sampled_image[]
* [[VUID-vkCmdDispatch-flags-02040]]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -262,21 +262,21 @@ ifdef::VK_VERSION_1_1[]
* [[VUID-vkCmdDispatchIndirect-commandBuffer-01848]]
If pname:commandBuffer is a protected command buffer, and any pipeline
stage in the sname:VkPipeline object bound to
ename:VK_PIPELINE_POINT_COMPUTE writes to any image or buffer, that
ename:VK_PIPELINE_BIND_POINT_COMPUTE writes to any image or buffer, that
image or buffer must: not be an unprotected image or unprotected buffer.
* [[VUID-vkCmdDispatchIndirect-commandBuffer-01849]]
If pname:commandBuffer is a protected command buffer, and any pipeline
stage other than the compute pipeline stage in the sname:VkPipeline
object bound to ename:VK_PIPELINE_POINT_COMPUTE reads from any image or
buffer, the image or buffer must: not be a protected image or protected
buffer.
object bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE reads from any
image or buffer, the image or buffer must: not be a protected image or
protected buffer.
endif::VK_VERSION_1_1[]
ifdef::VK_NV_corner_sampled_image[]
* [[VUID-vkCmdDispatchIndirect-flags-02041]]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****

View File

@ -87,7 +87,7 @@ include::../validity/structs/VkPipelineInputAssemblyStateCreateInfo.txt[]
--
include::../api/flags/VkPipelineInputAssemblyStateCreateFlags.txt[]
sname:VkPipelineInputAssemblyStateCreateFlags is a bitmask type for setting
tname:VkPipelineInputAssemblyStateCreateFlags is a bitmask type for setting
a mask, but is currently reserved for future use.
--
@ -677,7 +677,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -871,7 +871,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -1074,7 +1074,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -1322,7 +1322,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -1529,7 +1529,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -1735,7 +1735,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -1991,7 +1991,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -2199,7 +2199,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using a
slink:VkSamplerAddressMode of
elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
****
@ -2536,8 +2536,8 @@ include::../api/enums/VkConditionalRenderingFlagBitsEXT.txt[]
--
include::../api/flags/VkConditionalRenderingFlagsEXT.txt[]
sname:VkConditionalRenderingFlagsEXT is a bitmask type for setting a mask of
zero or more slink:VkConditionalRenderingFlagBitsEXT.
tname:VkConditionalRenderingFlagsEXT is a bitmask type for setting a mask of
zero or more elink:VkConditionalRenderingFlagBitsEXT.
[open,refpage='vkCmdEndConditionalRenderingEXT',desc='Define the end of a conditional rendering block',type='protos']
--

View File

@ -1065,7 +1065,7 @@ include::../api/structs/VkPhysicalDeviceProtectedMemoryFeatures.txt[]
* pname:protectedMemory specifies whether protected memory is supported.
If the sname:VkPhysicalDeviceProtectedMemoryFeatures structure is included
in the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is filled
in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is filled
with a value indicating whether the feature is supported.
include::../validity/structs/VkPhysicalDeviceProtectedMemoryFeatures.txt[]
@ -1129,7 +1129,7 @@ include::../api/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.txt[]
the primary command buffer.
If the sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT structure is
included in the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is
filled with values indicating the implementation-dependent behavior.
sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT can: also be used in
pname:pNext chain of slink:VkDeviceCreateInfo to enable the features.
@ -1153,7 +1153,7 @@ include::../api/structs/VkPhysicalDeviceShaderDrawParameterFeatures.txt[]
specifies whether shader draw parameters are supported.
If the sname:VkPhysicalDeviceShaderDrawParameterFeatures structure is
included in the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is
filled with a value indicating whether the feature is supported.
include::../validity/structs/VkPhysicalDeviceShaderDrawParameterFeatures.txt[]
@ -1175,7 +1175,7 @@ include::../api/structs/VkPhysicalDeviceMeshShaderFeaturesNV.txt[]
mesh shader stage is supported.
If the sname:VkPhysicalDeviceMeshShaderFeaturesNV structure is included in
the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is filled with
the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is filled with
a value indicating whether the feature is supported.
sname:VkPhysicalDeviceMeshShaderFeaturesNV can: also be used in pname:pNext
chain of slink:VkDeviceCreateInfo to enable the features.
@ -1401,7 +1401,7 @@ include::../api/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.txt[]
is supported.
If the sname:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT structure is
included in the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is
filled with values indicating the implementation-dependent behavior.
sname:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT can: also be used in
pname:pNext chain of slink:VkDeviceCreateInfo to enable the feature.
@ -1426,7 +1426,7 @@ describe the following features:
* [[features-features-astc-decodeModeSharedExponent]]
pname:decodeModeSharedExponent indicates whether the implementation
supports decoding ASTC compressed formats to
ename:FORMAT_E5B9G9R9_UFLOAT_PACK32 internal precision.
ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 internal precision.
If the sname:VkPhysicalDeviceASTCDecodeFeaturesEXT structure is included in
the pname:pNext chain of flink:vkGetPhysicalDeviceFeatures2KHR, it is filled
@ -1652,7 +1652,7 @@ structure describe the following features:
See <<texture-derivatives-compute,Compute Shader Derivatives>> for more
information.
If the sname:VkPhysicalDeviceComputeShaderDerivativesNV structure is
If the sname:VkPhysicalDeviceComputeShaderDerivativesFeaturesNV structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR, it
is filled with values indicating whether each feature is supported.
sname:VkPhysicalDeviceComputeShaderDerivativesFeaturesNV can: also be used
@ -2569,34 +2569,6 @@ range.
* [[features-limits-nonCoherentAtomSize]] pname:nonCoherentAtomSize is the
size and alignment in bytes that bounds concurrent access to
<<memory-device-hostaccess, host-mapped device memory>>.
ifdef::VK_EXT_discard_rectangles[]
* [[features-limits-maxDiscardRectangles]]
slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT::pname:maxDiscardRectangles
is the maximum number of active discard rectangles.
This limit can be queried by setting the pname:pNext pointer from a
slink:VkPhysicalDeviceProperties2 object to an instance of
slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT and using
fname:vkGetPhysicalDeviceProperties2 to fill out the members.
endif::VK_EXT_discard_rectangles[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[]
* [[features-limits-pointClipping]]
slink:VkPhysicalDevicePointClippingProperties::pname:pointClippingBehavior
defines the clipping behavior of points.
This limit can be queried by setting the pname:pNext pointer from a
slink:VkPhysicalDeviceProperties2 object to an instance of
slink:VkPhysicalDevicePointClippingProperties and using
fname:vkGetPhysicalDeviceProperties2 to fill out the members.
endif::VK_VERSION_1_1,VK_KHR_maintenance2[]
ifdef::VK_EXT_vertex_attribute_divisor[]
* [[features-limits-maxVertexAttribDivisor]]
sname:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::pname:maxVertexAttribDivisor
is the maximum value of the number of instances that will repeat the
value of vertex attribute data when instanced rendering is enabled.
This limit can be queried by setting the pname:pNext pointer from a
slink:VkPhysicalDeviceProperties2 object to an instance of
slink:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT and using
fname:vkGetPhysicalDeviceProperties2 to fill out the members.
endif::VK_EXT_vertex_attribute_divisor[]
// refBody VkPhysicalDeviceLimits
@ -2641,8 +2613,8 @@ include::../api/enums/VkSampleCountFlagBits.txt[]
--
include::../api/flags/VkSampleCountFlags.txt[]
sname:VkSampleCountFlags is a bitmask type for setting a mask of zero or
more slink:VkSampleCountFlagBits.
tname:VkSampleCountFlags is a bitmask type for setting a mask of zero or
more elink:VkSampleCountFlagBits.
--
ifdef::VK_KHR_push_descriptor[]
@ -2658,13 +2630,18 @@ include::../api/structs/VkPhysicalDevicePushDescriptorPropertiesKHR.txt[]
The members of the sname:VkPhysicalDevicePushDescriptorPropertiesKHR
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-maxPushDescriptors]] pname:maxPushDescriptors is the
maximum number of descriptors that can: be used in a descriptor set
created with
ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set.
include::../validity/structs/VkPhysicalDevicePushDescriptorPropertiesKHR.txt[]
If the sname:VkPhysicalDevicePushDescriptorPropertiesKHR structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
is filled with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDevicePushDescriptorPropertiesKHR.txt[]
--
endif::VK_KHR_push_descriptor[]
@ -2672,6 +2649,7 @@ endif::VK_KHR_push_descriptor[]
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
[open,refpage='VkPhysicalDeviceMultiviewProperties',desc='Structure describing multiview limits that can be supported by an implementation',type='structs']
--
The sname:VkPhysicalDeviceMultiviewProperties structure is defined as:
@ -2687,6 +2665,8 @@ endif::VK_KHR_multiview[]
The members of the sname:VkPhysicalDeviceMultiviewProperties structure
describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-maxMultiviewViewCount]] pname:maxMultiviewViewCount is
one greater than the maximum view index that can: be used in a subpass.
* [[features-limits-maxMultiviewInstanceIndex]]
@ -2694,12 +2674,12 @@ describe the following implementation-dependent limits:
index allowed to be generated by a drawing command recorded within a
subpass of a multiview render pass instance.
include::../validity/structs/VkPhysicalDeviceMultiviewProperties.txt[]
If the sname:VkPhysicalDeviceMultiviewProperties structure is included in
the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceMultiviewProperties.txt[]
--
endif::VK_VERSION_1_1,VK_KHR_multiview[]
@ -2717,15 +2697,17 @@ include::../api/structs/VkPhysicalDeviceDiscardRectanglePropertiesEXT.txt[]
The members of the sname:VkPhysicalDeviceDiscardRectanglePropertiesEXT
structure describe the following implementation-dependent limits:
* pname:maxDiscardRectangles is the maximum number of discard rectangles
that can: be specified.
include::../validity/structs/VkPhysicalDeviceDiscardRectanglePropertiesEXT.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-maxDiscardRectangles]] pname:maxDiscardRectangles is
the maximum number of active discard rectangles that can: be specified.
If the sname:VkPhysicalDeviceDiscardRectanglePropertiesEXT structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
is filled with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceDiscardRectanglePropertiesEXT.txt[]
--
endif::VK_EXT_discard_rectangles[]
@ -2743,6 +2725,8 @@ include::../api/structs/VkPhysicalDeviceSampleLocationsPropertiesEXT.txt[]
The members of the sname:VkPhysicalDeviceSampleLocationsPropertiesEXT
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-sampleLocationSampleCounts]]
pname:sampleLocationSampleCounts is a bitmask of
elink:VkSampleCountFlagBits indicating the sample counts supporting
@ -2766,12 +2750,12 @@ structure describe the following implementation-dependent limits:
If set to ename:VK_FALSE, then the sample locations must: stay constant
in each subpass.
include::../validity/structs/VkPhysicalDeviceSampleLocationsPropertiesEXT.txt[]
If the sname:VkPhysicalDeviceSampleLocationsPropertiesEXT structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
is filled with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceSampleLocationsPropertiesEXT.txt[]
--
endif::VK_EXT_sample_locations[]
@ -2789,16 +2773,18 @@ include::../api/structs/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.txt[]
The members of the sname:VkPhysicalDeviceExternalMemoryHostPropertiesEXT
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-minImportedHostPointerAlignment]]
pname:minImportedHostPointerAlignment is the minimum required:
alignment, in bytes, for the base address and size of host pointers that
can: be imported to a Vulkan memory object.
include::../validity/structs/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.txt[]
If the sname:VkPhysicalDeviceExternalMemoryHostPropertiesEXT structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2KHR,
it is filled with the implementation-dependent limits.
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
is filled with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.txt[]
--
@ -2818,18 +2804,20 @@ The members of the
sname:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX structure
describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-perViewPositionAllComponents]]
pname:perViewPositionAllComponents is ename:VK_TRUE if the
implementation supports per-view position values that differ in
components other than the X component.
include::../validity/structs/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.txt[]
If the sname:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
structure is included in the pname:pNext chain of
slink:VkPhysicalDeviceProperties2, it is filled with the
implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.txt[]
--
endif::VK_NVX_multiview_per_view_attributes[]
@ -2854,11 +2842,12 @@ describe the following implementation-dependent limit:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:pointClippingBehavior is the point clipping behavior supported by
the implementation, and is of type elink:VkPointClippingBehavior.
* [[features-limits-pointClipping]] pname:pointClippingBehavior is the
point clipping behavior supported by the implementation, and is of type
elink:VkPointClippingBehavior.
If the sname:VkPhysicalDevicePointClippingProperties structure is included
in the pname:pNext chain of flink:VkPhysicalDeviceProperties2, it is filled
in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDevicePointClippingProperties.txt[]
@ -2904,12 +2893,12 @@ describe the following implementation-dependent limits:
available in all stages, or are restricted to fragment and compute
stages.
include::../validity/structs/VkPhysicalDeviceSubgroupProperties.txt[]
If the sname:VkPhysicalDeviceSubgroupProperties structure is included in the
pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled with
the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceSubgroupProperties.txt[]
--
[open,refpage='VkSubgroupFeatureFlagBits',desc='Enum describing what subgroup operations are supported',type='enums']
@ -2963,8 +2952,8 @@ endif::VK_NV_shader_subgroup_partitioned[]
--
include::../api/flags/VkSubgroupFeatureFlags.txt[]
sname:VkSubgroupFeatureFlags is a bitmask type for setting a mask of zero or
more slink:VkSubgroupFeatureFlagBits.
tname:VkSubgroupFeatureFlags is a bitmask type for setting a mask of zero or
more elink:VkSubgroupFeatureFlagBits.
--
endif::VK_VERSION_1_1[]
@ -2982,6 +2971,8 @@ include::../api/structs/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.txt[
The members of the sname:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-advancedBlendMaxColorAttachments]]
pname:advancedBlendMaxColorAttachments is one greater than the highest
color attachment index that can: be used in a subpass, for a pipeline
@ -3012,11 +3003,12 @@ structure describe the following implementation-dependent limits:
operation enums are supported.
See the valid usage of slink:VkPipelineColorBlendAttachmentState.
include::../validity/structs/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.txt[]
If the sname:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT structure
is included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2,
it is filled with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.txt[]
--
endif::VK_EXT_blend_operation_advanced[]
@ -3034,10 +3026,16 @@ include::../api/structs/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.txt[
The members of the sname:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-maxVertexAttribDivisor]] pname:maxVertexAttribDivisor
is the maximum value of the number of instances that will repeat the
value of vertex attribute data when instanced rendering is enabled.
If the sname:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT structure
is included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2,
it is filled with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.txt[]
--
@ -3056,6 +3054,8 @@ include::../api/structs/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.txt[]
The members of the sname:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-filterMinmaxSingleComponentFormats]]
pname:filterMinmaxSingleComponentFormats is a boolean value indicating
whether a minimum set of required formats support min/max filtering.
@ -3102,6 +3102,7 @@ If pname:filterMinmaxImageComponentMapping is ename:VK_TRUE this restriction
does not apply and image component mapping works as normal.
include::../validity/structs/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.txt[]
--
endif::VK_EXT_sampler_filter_minmax[]
@ -3124,7 +3125,7 @@ include::../api/structs/VkPhysicalDeviceProtectedMemoryProperties.txt[]
include process termination or device loss.
If the sname:VkPhysicalDeviceProtectedMemoryProperties structure is included
in the pname:pNext chain of flink:VkPhysicalDeviceProperties2, it is filled
in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
with a value indicating the implementation-dependent behavior.
include::../validity/structs/VkPhysicalDeviceProtectedMemoryProperties.txt[]
@ -3150,6 +3151,8 @@ endif::VK_KHR_maintenance3[]
The members of the sname:VkPhysicalDeviceMaintenance3Properties structure
describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-maxPerSetDescriptors]] pname:maxPerSetDescriptors is a
maximum number of descriptors (summed over all descriptor types) in a
single descriptor set that is guaranteed to satisfy any
@ -3166,6 +3169,7 @@ the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceMaintenance3Properties.txt[]
--
endif::VK_VERSION_1_1,VK_KHR_maintenance3[]
@ -3182,6 +3186,8 @@ include::../api/structs/VkPhysicalDeviceMeshShaderPropertiesNV.txt[]
The members of the sname:VkPhysicalDeviceMeshShaderPropertiesNV structure
describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:maxDrawMeshTasksCount is the maximum number of local workgroups
that can: be launched by a single draw mesh tasks command.
See <<drawing-mesh-shading>>.
@ -3255,6 +3261,8 @@ include::../api/structs/VkPhysicalDeviceDescriptorIndexingPropertiesEXT.txt[]
The members of the sname:VkPhysicalDeviceDescriptorIndexingPropertiesEXT
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-maxUpdateAfterBindDescriptorsInAllPools]]
pname:maxUpdateAfterBindDescriptorsInAllPools is the maximum number of
descriptors (summed over all descriptor types) that can: be created
@ -3407,8 +3415,8 @@ structure describe the following implementation-dependent limits:
set.
If the sname:VkPhysicalDeviceDescriptorIndexingPropertiesEXT structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2KHR,
it is filled with the implementation-dependent limits.
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
is filled with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceDescriptorIndexingPropertiesEXT.txt[]
--
@ -3428,6 +3436,8 @@ include::../api/structs/VkPhysicalDeviceInlineUniformBlockPropertiesEXT.txt[]
The members of the sname:VkPhysicalDeviceInlineUniformBlockPropertiesEXT
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-maxInlineUniformBlockSize]]
pname:maxInlineUniformBlockSize is the maximum size in bytes of an
<<descriptorsets-inlineuniformblock, inline uniform block>> binding.
@ -3482,8 +3492,8 @@ ifdef::VK_EXT_descriptor_indexing[]
endif::VK_EXT_descriptor_indexing[]
If the sname:VkPhysicalDeviceInlineUniformBlockPropertiesEXT structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2KHR,
it is filled with the implementation-dependent limits.
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
is filled with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceInlineUniformBlockPropertiesEXT.txt[]
--
@ -3505,6 +3515,8 @@ The members of the
sname:VkPhysicalDeviceConservativeRasterizationPropertiesEXT structure
describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-primitiveOverestimationSize]]
pname:primitiveOverestimationSize is the size in pixels the generating
primitive is increased at each of its edges during conservative
@ -3592,13 +3604,13 @@ ifndef::VK_EXT_post_depth_coverage[]
pname:conservativeRasterizationPostDepthCoverage must: be false.
endif::VK_EXT_post_depth_coverage[]
include::../validity/structs/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.txt[]
If the sname:VkPhysicalDeviceConservativeRasterizationPropertiesEXT
structure is included in the pname:pNext chain of
slink:VkPhysicalDeviceProperties2KHR, it is filled with the
slink:VkPhysicalDeviceProperties2, it is filled with the
implementation-dependent limits and properties.
include::../validity/structs/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.txt[]
--
endif::VK_EXT_conservative_rasterization[]
@ -3616,6 +3628,8 @@ include::../api/structs/VkPhysicalDeviceShaderCorePropertiesAMD.txt[]
The members of the sname:VkPhysicalDeviceShaderCorePropertiesAMD structure
describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-shaderEngineCount]] pname:shaderEngineCount is an
unsigned integer value indicating the number of shader engines found
inside the shader core of the physical device.
@ -3664,12 +3678,12 @@ describe the following implementation-dependent limits:
pname:vgprAllocationGranularity is an unsigned integer value indicating
the granularity of VGPR allocation for a wave.
include::../validity/structs/VkPhysicalDeviceShaderCorePropertiesAMD.txt[]
If the sname:VkPhysicalDeviceShaderCorePropertiesAMD structure is included
in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceShaderCorePropertiesAMD.txt[]
--
endif::VK_AMD_shader_core_properties[]
@ -3688,6 +3702,8 @@ The members of the sname:VkPhysicalDeviceShadingRateImagePropertiesNV
structure describe the following implementation-dependent properties related
to the <<primsrast-shading-rate-image, shading rate image>> feature:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-shading-rate-texel-size]] pname:shadingRateTexelSize
indicates the width and height of the portion of the framebuffer
corresponding to each texel in the shading rate image.
@ -3704,12 +3720,12 @@ to the <<primsrast-shading-rate-image, shading rate image>> feature:
final shading rate will be adjusted so that its product does not exceed
the limit.
include::../validity/structs/VkPhysicalDeviceShadingRateImagePropertiesNV.txt[]
If the sname:VkPhysicalDeviceShadingRateImagePropertiesNV structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
is filled with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceShadingRateImagePropertiesNV.txt[]
--
endif::VK_NV_shading_rate_image[]
@ -3727,6 +3743,8 @@ include::../api/structs/VkPhysicalDeviceTransformFeedbackPropertiesEXT.txt[]
The members of the sname:VkPhysicalDeviceTransformFeedbackPropertiesEXT
structure describe the following implementation-dependent limits:
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* [[features-limits-maxTransformFeedbackStreams]]
pname:maxTransformFeedbackStreams is the maximum number of vertex
streams that can be output from geometry shaders declared with the
@ -3788,11 +3806,11 @@ structure describe the following implementation-dependent limits:
flink:vkCmdDrawIndirectByteCountEXT function otherwise the function
must: not be called.
include::../validity/structs/VkPhysicalDeviceTransformFeedbackPropertiesEXT.txt[]
If the sname:VkPhysicalDeviceTransformFeedbackPropertiesEXT structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2KHR,
it is filled with the implementation-dependent limits and properties.
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
is filled with the implementation-dependent limits and properties.
include::../validity/structs/VkPhysicalDeviceTransformFeedbackPropertiesEXT.txt[]
--
@ -3825,6 +3843,10 @@ include::../api/structs/VkPhysicalDeviceRayTracingPropertiesNV.txt[]
* pname:maxDescriptorSetAccelerationStructures is the maximum number of
acceleration structure descriptors that are allowed in a descriptor set.
If the sname:VkPhysicalDeviceRayTracingPropertiesNV structure is included in
the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
with the implementation-dependent limits.
include::../validity/structs/VkPhysicalDeviceRayTracingPropertiesNV.txt[]
--
endif::VK_NV_ray_tracing[]
@ -3992,10 +4014,10 @@ ifdef::VK_EXT_transform_feedback[]
| code:uint32_t | pname:maxTransformFeedbackStreamDataSize | `<<VK_EXT_transform_feedback>>`
| code:uint32_t | pname:maxTransformFeedbackBufferDataSize | `<<VK_EXT_transform_feedback>>`
| code:uint32_t | pname:maxTransformFeedbackBufferDataStride | `<<VK_EXT_transform_feedback>>`
| code:VkBool32 | pname:transformFeedbackQueries | `<<VK_EXT_transform_feedback>>`
| code:VkBool32 | pname:transformFeedbackStreamsLinesTriangles | `<<VK_EXT_transform_feedback>>`
| code:VkBool32 | pname:transformFeedbackRasterizationStreamSelect | `<<VK_EXT_transform_feedback>>`
| code:VkBool32 | pname:transformFeedbackDraw | `<<VK_EXT_transform_feedback>>`
| basetype:VkBool32 | pname:transformFeedbackQueries | `<<VK_EXT_transform_feedback>>`
| basetype:VkBool32 | pname:transformFeedbackStreamsLinesTriangles | `<<VK_EXT_transform_feedback>>`
| basetype:VkBool32 | pname:transformFeedbackRasterizationStreamSelect | `<<VK_EXT_transform_feedback>>`
| basetype:VkBool32 | pname:transformFeedbackDraw | `<<VK_EXT_transform_feedback>>`
endif::VK_EXT_transform_feedback[]
|====
@ -4326,12 +4348,12 @@ include::../validity/structs/VkMultisamplePropertiesEXT.txt[]
If the sample count for which additional multisampling capabilities are
requested using fname:vkGetPhysicalDeviceMultisamplePropertiesEXT is set
in sname:VkPhysicalDeviceSampleLocationsEXT::
in sname:VkPhysicalDeviceSampleLocationsPropertiesEXT::
<<features-limits-sampleLocationSampleCounts,
pname:sampleLocationSampleCounts>> the pname:width and pname:height members
of sname:VkMultisamplePropertiesEXT::pname:maxSampleLocationGridSize must:
be greater than or equal to the corresponding members of
sname:VkPhysicalDeviceSampleLocationsEXT::
sname:VkPhysicalDeviceSampleLocationsPropertiesEXT::
<<features-limits-maxSampleLocationGridSize,pname:maxSampleLocationGridSize>>,
respectively, otherwise both members must: be `0`.
@ -5687,7 +5709,7 @@ Depth/stencil formats have more relaxed requirements as discussed
<<features-formats-depth-stencil,below>>.
Each format has an _element size_, the number of bytes used to stored one
element or one compressed block, with the value of the element size listed
in slink:VkFormat.
in elink:VkFormat.
The representation of non-packed formats is that the first component
specified in the name of the format is in the lowest memory addresses and
@ -6371,8 +6393,8 @@ flink:vkGetPhysicalDeviceProperties::pname:format:
--
include::../api/flags/VkFormatFeatureFlags.txt[]
sname:VkFormatFeatureFlags is a bitmask type for setting a mask of zero or
more slink:VkFormatFeatureFlagBits.
tname:VkFormatFeatureFlags is a bitmask type for setting a mask of zero or
more elink:VkFormatFeatureFlagBits.
--
ifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
@ -6505,7 +6527,7 @@ planes_; the first plane contains the green channel and the second plane
contains the blue channel and red channel.
If the format name does not contain `PLANE`, then the format contains a
single plane; for example, ename:VK_FORMAT_R8G8B8A8_UNORM.
Some commands, such as flink:vkCmdBufferToImage, do not operate on all
Some commands, such as flink:vkCmdCopyBufferToImage, do not operate on all
format channels in the image, but instead operate only on the _format
planes_ explicitly chosen by the application and operate on each _format
plane_ independently.
@ -6518,7 +6540,7 @@ The union of an image's _memory planes_ is not necessarily contiguous.
If an image is <<glossary-linear-resource,linear>>, then the partition is
the same for _memory planes_ and for _format planes_.
Therefore, if the returned pname:drmFormatModifier is
ename:DRM_FORMAT_MOD_LINEAR, then pname:drmFormatModifierPlaneCount must:
code:DRM_FORMAT_MOD_LINEAR, then pname:drmFormatModifierPlaneCount must:
equal the _format planecount_, and pname:drmFormatModifierTilingFeatures
must: be identical to the
slink:VkFormatProperties2::pname:linearTilingFeatures returned in the same
@ -6531,7 +6553,7 @@ planes_.
For example, consider an image whose pname:format is
ename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, pname:tiling is
ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, whose pname:drmFormatModifier
is not ename:DRM_FORMAT_MOD_LINEAR, and pname:flags lacks
is not code:DRM_FORMAT_MOD_LINEAR, and pname:flags lacks
ename:VK_IMAGE_CREATE_DISJOINT_BIT.
The image has 3 _format planes_, and commands such
flink:vkCmdCopyBufferToImage act on each _format plane_ independently as if
@ -7691,8 +7713,8 @@ or the equivalent
include::../api/flags/VkExternalMemoryHandleTypeFlagsKHR.txt[]
endif::VK_KHR_external_memory_capabilities[]
sname:VkExternalMemoryHandleTypeFlags is a bitmask type for setting a mask
of zero or more slink:VkExternalMemoryHandleTypeFlagBits.
tname:VkExternalMemoryHandleTypeFlags is a bitmask type for setting a mask
of zero or more elink:VkExternalMemoryHandleTypeFlagBits.
--
[open,refpage='VkExternalImageFormatProperties',desc='Structure specifying supported external handle properties',type='structs']
@ -7735,10 +7757,10 @@ endif::VK_KHR_external_memory_capabilities[]
elink:VkExternalMemoryFeatureFlagBits specifying the features of
pname:handleType.
* pname:exportFromImportedHandleTypes is a bitmask of
slink:VkExternalMemoryHandleTypeFlagBits specifying which types of
elink:VkExternalMemoryHandleTypeFlagBits specifying which types of
imported handle pname:handleType can: be exported from.
* pname:compatibleHandleTypes is a bitmask of
slink:VkExternalMemoryHandleTypeFlagBits specifying handle types which
elink:VkExternalMemoryHandleTypeFlagBits specifying handle types which
can: be specified at the same time as pname:handleType when creating an
image compatible with external memory.
@ -7776,7 +7798,7 @@ endif::VK_KHR_external_memory_capabilities[]
buffer.
* ename:VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT specifies that handles
of this type can: be exported from Vulkan memory objects.
* ename:VK_INTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT specifies that handles
* ename:VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT specifies that handles
of this type can: be imported as Vulkan memory objects.
Because their semantics in external APIs roughly align with that of an image
@ -7811,8 +7833,8 @@ or the equivalent
include::../api/flags/VkExternalMemoryFeatureFlagsKHR.txt[]
endif::VK_KHR_external_memory_capabilities[]
sname:VkExternalMemoryFeatureFlags is a bitmask type for setting a mask of
zero or more slink:VkExternalMemoryFeatureFlagBits.
tname:VkExternalMemoryFeatureFlags is a bitmask type for setting a mask of
zero or more elink:VkExternalMemoryFeatureFlagBits.
--
endif::VK_VERSION_1_1,VK_KHR_external_memory_capabilities[]
@ -7923,7 +7945,7 @@ To obtain optimal Android hardware buffer usage flags for specific image
creation parameters, attach an instance of
sname:VkAndroidHardwareBufferUsageANDROID to the pname:pNext chain of a
slink:VkImageFormatProperties2 structure passed to
slink:vkGetPhysicalDeviceImageFormatProperties2.
flink:vkGetPhysicalDeviceImageFormatProperties2.
This structure is defined as:
include::../api/structs/VkAndroidHardwareBufferUsageANDROID.txt[]
@ -8315,8 +8337,8 @@ or the equivalent
include::../api/flags/VkExternalSemaphoreHandleTypeFlagsKHR.txt[]
endif::VK_KHR_external_semaphore_capabilities[]
sname:VkExternalSemaphoreHandleTypeFlags is a bitmask type for setting a
mask of zero or more slink:VkExternalSemaphoreHandleTypeFlagBits.
tname:VkExternalSemaphoreHandleTypeFlags is a bitmask type for setting a
mask of zero or more elink:VkExternalSemaphoreHandleTypeFlagBits.
--
[open,refpage='VkExternalSemaphoreProperties',desc='Structure describing supported external semaphore handle features',type='structs']
@ -8382,8 +8404,8 @@ or the equivalent
include::../api/flags/VkExternalSemaphoreFeatureFlagsKHR.txt[]
endif::VK_KHR_external_semaphore_capabilities[]
sname:VkExternalSemaphoreFeatureFlags is a bitmask type for setting a mask
of zero or more slink:VkExternalSemaphoreFeatureFlagBits.
tname:VkExternalSemaphoreFeatureFlags is a bitmask type for setting a mask
of zero or more elink:VkExternalSemaphoreFeatureFlagBits.
--
endif::VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities[]
@ -8535,8 +8557,8 @@ or the equivalent
include::../api/flags/VkExternalFenceHandleTypeFlagsKHR.txt[]
endif::VK_KHR_external_fence_capabilities[]
sname:VkExternalFenceHandleTypeFlags is a bitmask type for setting a mask of
zero or more slink:VkExternalFenceHandleTypeFlagBits.
tname:VkExternalFenceHandleTypeFlags is a bitmask type for setting a mask of
zero or more elink:VkExternalFenceHandleTypeFlagBits.
--
[open,refpage='VkExternalFenceProperties',desc='Structure describing supported external fence handle features',type='structs']
@ -8600,8 +8622,8 @@ or the equivalent
include::../api/flags/VkExternalFenceFeatureFlagsKHR.txt[]
endif::VK_KHR_external_fence_capabilities[]
sname:VkExternalFenceFeatureFlags is a bitmask type for setting a mask of
zero or more slink:VkExternalFenceFeatureFlagBits.
tname:VkExternalFenceFeatureFlags is a bitmask type for setting a mask of
zero or more elink:VkExternalFenceFeatureFlagBits.
--
endif::VK_VERSION_1_1,VK_KHR_external_fence_capabilities[]

View File

@ -104,7 +104,7 @@ include::../validity/structs/VkPipelineDiscardRectangleStateCreateInfoEXT.txt[]
--
include::../api/flags/VkPipelineDiscardRectangleStateCreateFlagsEXT.txt[]
sname:VkPipelineDiscardRectangleStateCreateFlagsEXT is a bitmask type for
tname:VkPipelineDiscardRectangleStateCreateFlagsEXT is a bitmask type for
setting a mask, but is currently reserved for future use.
--
@ -725,7 +725,7 @@ include::../validity/structs/VkPipelineDepthStencilStateCreateInfo.txt[]
--
include::../api/flags/VkPipelineDepthStencilStateCreateFlags.txt[]
sname:VkPipelineDepthStencilStateCreateFlags is a bitmask type for setting a
tname:VkPipelineDepthStencilStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
@ -907,8 +907,8 @@ include::../api/enums/VkStencilFaceFlagBits.txt[]
--
include::../api/flags/VkStencilFaceFlags.txt[]
sname:VkStencilFaceFlags is a bitmask type for setting a mask of zero or
more slink:VkStencilFaceFlagBits.
tname:VkStencilFaceFlags is a bitmask type for setting a mask of zero or
more elink:VkStencilFaceFlagBits.
--
[open,refpage='vkCmdSetStencilWriteMask',desc='Set the stencil write mask dynamic state',type='protos']
@ -1252,7 +1252,7 @@ include::../validity/structs/VkPipelineCoverageToColorStateCreateInfoNV.txt[]
--
include::../api/flags/VkPipelineCoverageToColorStateCreateFlagsNV.txt[]
sname:VkPipelineCoverageToColorStateCreateFlagsNV is a bitmask type for
tname:VkPipelineCoverageToColorStateCreateFlagsNV is a bitmask type for
setting a mask, but is currently reserved for future use.
--
@ -1378,7 +1378,7 @@ include::../validity/structs/VkPipelineCoverageModulationStateCreateInfoNV.txt[]
--
include::../api/flags/VkPipelineCoverageModulationStateCreateFlagsNV.txt[]
sname:VkPipelineCoverageModulationStateCreateFlagsNV is a bitmask type for
tname:VkPipelineCoverageModulationStateCreateFlagsNV is a bitmask type for
setting a mask, but is currently reserved for future use.
--

View File

@ -97,7 +97,7 @@ include::../validity/structs/VkPipelineColorBlendStateCreateInfo.txt[]
--
include::../api/flags/VkPipelineColorBlendStateCreateFlags.txt[]
sname:VkPipelineColorBlendStateCreateFlags is a bitmask type for setting a
tname:VkPipelineColorBlendStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
@ -545,6 +545,6 @@ enabled.
--
include::../api/flags/VkColorComponentFlags.txt[]
sname:VkColorComponentFlags is a bitmask type for setting a mask of zero or
more slink:VkColorComponentFlagBits.
tname:VkColorComponentFlags is a bitmask type for setting a mask of zero or
more elink:VkColorComponentFlagBits.
--

View File

@ -333,7 +333,7 @@ endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* sname:VkDescriptorSet
ifdef::VK_NVX_device_generated_commands[]
* sname:VkObjectTableNVX
* sname:VkIndirectCommandsLayout
* sname:VkIndirectCommandsLayoutNVX
endif::VK_NVX_device_generated_commands[]
Destroying these objects will move any command buffers that are in the
@ -904,12 +904,12 @@ include::../api/enums/VkStructureType.txt[]
Each value corresponds to a particular structure with a pname:sType member
with a matching name.
As a general rule, the name of each ename:VkStructureType value is obtained
As a general rule, the name of each elink:VkStructureType value is obtained
by taking the name of the structure, stripping the leading etext:Vk,
prefixing each capital letter with etext:_, converting the entire resulting
string to upper case, and prefixing it with etext:VK_STRUCTURE_TYPE_.
For example, structures of type sname:VkImageCreateInfo correspond to a
ename:VkStructureType of ename:VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, and thus
elink:VkStructureType of ename:VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, and thus
its pname:sType member must: equal that when it is passed to the API.
The values ename:VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO and

View File

@ -317,7 +317,7 @@ include::../validity/structs/VkPipelineVertexInputStateCreateInfo.txt[]
--
include::../api/flags/VkPipelineVertexInputStateCreateFlags.txt[]
sname:VkPipelineVertexInputStateCreateFlags is a bitmask type for setting a
tname:VkPipelineVertexInputStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--

View File

@ -32,7 +32,7 @@ Points::
Geometry shaders that operate on points use an code:OpExecutionMode
instruction specifying the code:InputPoints input mode.
Such a shader is valid only when the pipeline primitive topology is
code:VK_PRIMITIVE_TOPOLOGY_POINT_LIST (if tessellation is not in use) or if
ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST (if tessellation is not in use) or if
tessellation is in use and the tessellation evaluation shader uses
code:PointMode.
There is only a single input vertex available for each geometry shader
@ -44,8 +44,8 @@ Lines::
Geometry shaders that operate on line segments are generated by including an
code:OpExecutionMode instruction with the code:InputLines mode.
Such a shader is valid only for the code:VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
and code:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP primitive topologies (if
Such a shader is valid only for the ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
and ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP primitive topologies (if
tessellation is not in use) or if tessellation is in use and the
tessellation mode is code:Isolines.
There are two input vertices available for each geometry shader invocation.
@ -58,8 +58,8 @@ Geometry shaders that operate on line segments with adjacent vertices are
generated by including an code:OpExecutionMode instruction with the
code:InputLinesAdjacency mode.
Such a shader is valid only for the
code:VK_PRIMITIVE_TOPOLOGY_LINES_WITH_ADJACENCY and
code:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY primitive topologies
ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY and
ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY primitive topologies
and must: not be used when tessellation is in use.
+
In this mode, there are four vertices available for each geometry shader
@ -75,9 +75,9 @@ Triangles::
Geometry shaders that operate on triangles are created by including an
code:OpExecutionMode instruction with the code:Triangles mode.
Such a shader is valid when the pipeline topology is
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, or
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN (if tessellation is not in use) or
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, or
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN (if tessellation is not in use) or
when tessellation is in use and the tessellation mode is code:Triangles or
code:Quads.
+
@ -92,8 +92,8 @@ Geometry shaders that operate on triangles with adjacent vertices are
created by including an code:OpExecutionMode instruction with the
code:InputTrianglesAdjacency mode.
Such a shader is valid when the pipeline topology is
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLES_WITH_ADJACENCY or
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, and must: not be
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, and must: not be
used when tessellation is in use.
+
In this mode, there are six vertices available for each geometry shader

View File

@ -270,7 +270,7 @@ include::../validity/structs/VkInstanceCreateInfo.txt[]
--
include::../api/flags/VkInstanceCreateFlags.txt[]
sname:VkInstanceCreateFlags is a bitmask type for setting a mask, but is
tname:VkInstanceCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--

View File

@ -582,7 +582,7 @@ ifdef::VK_EXT_inline_uniform_block[]
Variables identified with the code:Uniform storage class can: also be used
to access transparent descriptor set backed resources when the variable is
assigned to a descriptor set layout binding with a pname:descriptorType of
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK.
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT.
In this case the variable must: be typed as code:OpTypeStruct and cannot: be
aggregated into arrays of that type.
Further, the code:Offset decoration for any member of such a variable must:
@ -692,7 +692,7 @@ ifdef::VK_EXT_inline_uniform_block[]
| inline uniform block | ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
endif::VK_EXT_inline_uniform_block[]
ifdef::VK_NV_ray_tracing[]
| acceleration structure | ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE
| acceleration structure | ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
endif::VK_NV_ray_tracing[]
|====
@ -835,7 +835,7 @@ statically used.
A noteworthy example of using multiple statically-used shader variables
sharing the same descriptor set and binding values is a descriptor of type
code:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER that has multiple
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER that has multiple
corresponding shader variables in the code:UniformConstant storage class,
where some could be code:OpTypeImage, some could be code:OpTypeSampler
(code:Sampled=1), and some could be code:OpTypeSampledImage.

View File

@ -728,8 +728,8 @@ endif::VK_KHR_device_group_creation[]
--
include::../api/flags/VkMemoryHeapFlags.txt[]
sname:VkMemoryHeapFlags is a bitmask type for setting a mask of zero or more
slink:VkMemoryHeapFlagBits.
tname:VkMemoryHeapFlags is a bitmask type for setting a mask of zero or more
elink:VkMemoryHeapFlagBits.
--
[open,refpage='VkMemoryType',desc='Structure specifying memory type',type='structs']
@ -795,8 +795,8 @@ endif::VK_VERSION_1_1[]
--
include::../api/flags/VkMemoryPropertyFlags.txt[]
sname:VkMemoryPropertyFlags is a bitmask type for setting a mask of zero or
more slink:VkMemoryPropertyFlagBits.
tname:VkMemoryPropertyFlags is a bitmask type for setting a mask of zero or
more elink:VkMemoryPropertyFlagBits.
--
[open,refpage='VkDeviceMemory',desc='Opaque handle to a device memory object',type='handles']
@ -885,7 +885,7 @@ In such cases, allocated memory is tracked on a per-device and per-heap
basis.
Some platforms allow overallocation into other heaps.
The overallocation behavior can: be specified through the
slink:VK_AMD_memory_overallocation_behavior extension.
`<<VK_AMD_memory_overallocation_behavior>>` extension.
endif::VK_AMD_memory_overallocation_behavior[]
@ -2283,8 +2283,8 @@ or the equivalent
include::../api/flags/VkMemoryAllocateFlagsKHR.txt[]
endif::VK_KHR_device_group[]
sname:VkMemoryAllocateFlags is a bitmask type for setting a mask of zero or
more slink:VkMemoryAllocateFlagBits.
tname:VkMemoryAllocateFlags is a bitmask type for setting a mask of zero or
more elink:VkMemoryAllocateFlagBits.
--
endif::VK_VERSION_1_1,VK_KHR_device_group[]
@ -2387,7 +2387,7 @@ In such cases, fname:vkMapMemory must: return
ename:VK_ERROR_MEMORY_MAP_FAILED.
The application can: improve the likelihood of success by reducing the size
of the mapped range and/or removing unneeded mappings using
fname:VkUnmapMemory.
flink:vkUnmapMemory.
====
[[memory-device-hostaccess-hazards]]
@ -2448,7 +2448,7 @@ include::../validity/protos/vkMapMemory.txt[]
--
include::../api/flags/VkMemoryMapFlags.txt[]
sname:VkMemoryMapFlags is a bitmask type for setting a mask, but is
tname:VkMemoryMapFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -2985,7 +2985,7 @@ ifdef::VK_KHR_image_format_list[]
[NOTE]
.Note
====
When using ename:VK_IMAGE_USAGE_MUTABLE_FORMAT_BIT with Android hardware
When using ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT with Android hardware
buffer images, applications should: use slink:VkImageFormatListCreateInfoKHR
to inform the implementation which view formats will be used with the image.
For some common sets of format, this allows some implementations to provide
@ -3126,8 +3126,8 @@ or the equivalent
include::../api/flags/VkPeerMemoryFeatureFlagsKHR.txt[]
endif::VK_KHR_device_group[]
sname:VkPeerMemoryFeatureFlags is a bitmask type for setting a mask of zero
or more slink:VkPeerMemoryFeatureFlagBits.
tname:VkPeerMemoryFeatureFlags is a bitmask type for setting a mask of zero
or more elink:VkPeerMemoryFeatureFlagBits.
--
endif::VK_VERSION_1_1,VK_KHR_device_group[]

View File

@ -392,7 +392,7 @@ include::../validity/structs/VkPipelineShaderStageCreateInfo.txt[]
--
include::../api/flags/VkPipelineShaderStageCreateFlags.txt[]
sname:VkPipelineShaderStageCreateFlags is a bitmask type for setting a mask,
tname:VkPipelineShaderStageCreateFlags is a bitmask type for setting a mask,
but is currently reserved for future use.
--
@ -448,8 +448,8 @@ Thus, it may not have the desired effect in all cases.
--
include::../api/flags/VkShaderStageFlags.txt[]
sname:VkShaderStageFlags is a bitmask type for setting a mask of zero or
more slink:VkShaderStageFlagBits.
tname:VkShaderStageFlags is a bitmask type for setting a mask of zero or
more elink:VkShaderStageFlagBits.
--
@ -624,7 +624,7 @@ ifdef::VK_NV_mesh_shader[]
ename:VK_SHADER_STAGE_VERTEX_BIT,
ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or
ename:VK_SHADER_STAGE_GEOEMETRY_BIT).
ename:VK_SHADER_STAGE_GEOMETRY_BIT).
* [[VUID-VkGraphicsPipelineCreateInfo-stage-02096]]
The pname:stage member of one element of pname:pStages must: be either
ename:VK_SHADER_STAGE_VERTEX_BIT or ename:VK_SHADER_STAGE_MESH_BIT_NV.
@ -1036,8 +1036,8 @@ information.
--
include::../api/flags/VkPipelineCreateFlags.txt[]
sname:VkPipelineCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkPipelineCreateFlagBits.
tname:VkPipelineCreateFlags is a bitmask type for setting a mask of zero or
more elink:VkPipelineCreateFlagBits.
--
[open,refpage='VkPipelineDynamicStateCreateInfo',desc='Structure specifying parameters of a newly created pipeline dynamic state',type='structs']
@ -1069,7 +1069,7 @@ include::../validity/structs/VkPipelineDynamicStateCreateInfo.txt[]
--
include::../api/flags/VkPipelineDynamicStateCreateFlags.txt[]
sname:VkPipelineDynamicStateCreateFlags is a bitmask type for setting a
tname:VkPipelineDynamicStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
@ -1144,14 +1144,14 @@ include::../api/enums/VkDynamicState.txt[]
ifdef::VK_NV_clip_space_w_scaling[]
* ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV specifies that the
pname:pViewportScalings state in
sname:VkPipelineViewportWScalingStateCreateInfoNV will be ignored and
slink:VkPipelineViewportWScalingStateCreateInfoNV will be ignored and
must: be set dynamically with flink:vkCmdSetViewportWScalingNV before
any draws are performed with a pipeline state with
sname:VkPipelineViewportWScalingStateCreateInfo member
slink:VkPipelineViewportWScalingStateCreateInfoNV member
pname:viewportScalingEnable set to ename:VK_TRUE
endif::VK_NV_clip_space_w_scaling[]
ifdef::VK_EXT_discard_rectangles[]
* ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLES_EXT specifies that the
* ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT specifies that the
pname:pDiscardRectangles state in
slink:VkPipelineDiscardRectangleStateCreateInfoEXT will be ignored and
must: be set dynamically with flink:vkCmdSetDiscardRectangleEXT before
@ -1471,7 +1471,7 @@ include::../validity/structs/VkPipelineCacheCreateInfo.txt[]
--
include::../api/flags/VkPipelineCacheCreateFlags.txt[]
sname:VkPipelineCacheCreateFlags is a bitmask type for setting a mask, but
tname:VkPipelineCacheCreateFlags is a bitmask type for setting a mask, but
is currently reserved for future use.
--

View File

@ -109,7 +109,7 @@ include::../validity/structs/VkPipelineRasterizationStateCreateInfo.txt[]
--
include::../api/flags/VkPipelineRasterizationStateCreateFlags.txt[]
sname:VkPipelineRasterizationStateCreateFlags is a bitmask type for setting
tname:VkPipelineRasterizationStateCreateFlags is a bitmask type for setting
a mask, but is currently reserved for future use.
--
@ -168,7 +168,7 @@ include::../validity/structs/VkPipelineMultisampleStateCreateInfo.txt[]
--
include::../api/flags/VkPipelineMultisampleStateCreateFlags.txt[]
sname:VkPipelineMultisampleStateCreateFlags is a bitmask type for setting a
tname:VkPipelineMultisampleStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--
@ -314,7 +314,7 @@ include::../validity/structs/VkPipelineRasterizationStateStreamCreateInfoEXT.txt
--
include::../api/flags/VkPipelineRasterizationStateStreamCreateFlagsEXT.txt[]
sname:VkPipelineRasterizationStateStreamCreateFlagsEXT is a bitmask type for
tname:VkPipelineRasterizationStateStreamCreateFlagsEXT is a bitmask type for
setting a mask, but is currently reserved for future use.
--
@ -784,7 +784,7 @@ include::../api/protos/vkCmdBindShadingRateImageNV.txt[]
been created with ename:VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV set
* [[VUID-vkCmdBindShadingRateImageNV-imageView-02062]]
If pname:imageView is not dlink:VK_NULL_HANDLE, pname:imageLayout must:
match the actual sname:VkImageLayout of each subresource accessible from
match the actual elink:VkImageLayout of each subresource accessible from
pname:imageView at the time the subresource is accessed.
* [[VUID-vkCmdBindShadingRateImageNV-imageLayout-02063]]
If pname:imageView is not dlink:VK_NULL_HANDLE, pname:imageLayout must:
@ -799,15 +799,16 @@ When the shading rate image is enabled in the current pipeline, rasterizing
a primitive covering the pixel with coordinates (_x_,_y_) will fetch a
shading rate index value from the shading rate image bound by
fname:vkCmdBindShadingRateImageNV.
If the shading rate image view has a type of ename:VK_IMAGE_VIEW_2D, the
lookup will use texel coordinates (_u_,_v_) where latexmath:[u = \lfloor
If the shading rate image view has a type of ename:VK_IMAGE_VIEW_TYPE_2D,
the lookup will use texel coordinates (_u_,_v_) where latexmath:[u = \lfloor
\frac{x}{twidth} \rfloor], latexmath:[v = \lfloor \frac{y}{theight}
\rfloor], and latexmath:[twidth] and latexmath:[theight] are the width and
height of the implementation-dependent
<<features-limits-shading-rate-texel-size, shading rate texel size>>.
If the shading rate image view has a type of ename:VK_IMAGE_VIEW_2D_ARRAY,
the lookup will use texel coordinates (_u_,_v_) to extract a texel from the
layer _l_, where _l_ is the layer of the framebuffer being rendered to.
If the shading rate image view has a type of
ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY, the lookup will use texel coordinates
(_u_,_v_) to extract a texel from the layer _l_, where _l_ is the layer of
the framebuffer being rendered to.
If _l_ is greater than or equal to the number of layers in the image view,
layer zero will be used.
@ -885,7 +886,7 @@ include::../api/structs/VkShadingRatePaletteNV.txt[]
* pname:shadingRatePaletteEntryCount specifies the number of entries in
the shading rate image palette.
* pname:pShadingRatePaletteEntries is a pointer to an array of
slink:VkShadingRatePaletteEntryNV enums defining the shading rate for
elink:VkShadingRatePaletteEntryNV enums defining the shading rate for
each palette entry.
.Valid Usage
@ -917,7 +918,7 @@ The following table indicates the width and height (in pixels) of each
fragment generated using the indicated shading rate, as well as the maximum
number of fragment shader invocations launched for each fragment.
When processing regions of a primitive that have a shading rate of
ename:VK_SHADING_RATE_PALETTE_ENTRY_NO_PIXELS_NV, no fragments will be
ename:VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, no fragments will be
generated in that region.
[options="header"]
@ -1155,7 +1156,7 @@ corresponds to the coverage sample numbered _i_ in the multi-pixel fragment.
* [[VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074]]
pname:sampleCount must: correspond to a sample count enumerated in
elink:VkSampleCountFlags whose corresponding bit is set in
ename:VkPhysicalDeviceLimits::pname:framebufferNoAttachmentsSampleCounts.
slink:VkPhysicalDeviceLimits::pname:framebufferNoAttachmentsSampleCounts.
* [[VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075]]
pname:sampleLocationCount must: be equal to the product of
pname:sampleCount, the fragment width for pname:shadingRate, and the
@ -1346,11 +1347,11 @@ vertex index value, the value obtained is undefined.
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP (even) | i | i+1 | i+2
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP (odd) | i | i+2 | i+1
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN | i+1 | i+2 | 0
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_ADJACENCY | 4i+1 | 4i+2 | -
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_ADJACENCY | i+1 | i+2 | -
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLES_ADJACENCY | 6i | 6i+2 | 6i+4
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJACENCY (even) | 2i | 2i+2 | 2i+4
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJACENCY (odd) | 2i | 2i+4 | 2i+2
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY | 4i+1 | 4i+2 | -
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY | i+1 | i+2 | -
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY | 6i | 6i+2 | 6i+4
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY (even) | 2i | 2i+2 | 2i+4
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY (odd) | 2i | 2i+4 | 2i+2
|======
When geometry
@ -1702,8 +1703,8 @@ been discarded.
--
include::../api/flags/VkCullModeFlags.txt[]
sname:VkCullModeFlags is a bitmask type for setting a mask of zero or more
slink:VkCullModeFlagBits.
tname:VkCullModeFlags is a bitmask type for setting a mask of zero or more
elink:VkCullModeFlagBits.
--
The rule for determining which fragments are produced by polygon
@ -2070,7 +2071,7 @@ include::../validity/structs/VkPipelineRasterizationConservativeStateCreateInfoE
--
include::../api/flags/VkPipelineRasterizationConservativeStateCreateFlagsEXT.txt[]
sname:VkPipelineRasterizationConservativeStateCreateFlagsEXT is a bitmask
tname:VkPipelineRasterizationConservativeStateCreateFlagsEXT is a bitmask
type for setting a mask, but is currently reserved for future use.
--

View File

@ -94,7 +94,7 @@ include::../validity/structs/VkQueryPoolCreateInfo.txt[]
--
include::../api/flags/VkQueryPoolCreateFlags.txt[]
sname:VkQueryPoolCreateFlags is a bitmask type for setting a mask, but is
tname:VkQueryPoolCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -466,8 +466,8 @@ include::../api/enums/VkQueryControlFlagBits.txt[]
--
include::../api/flags/VkQueryControlFlags.txt[]
sname:VkQueryControlFlags is a bitmask type for setting a mask of zero or
more slink:VkQueryControlFlagBits.
tname:VkQueryControlFlags is a bitmask type for setting a mask of zero or
more elink:VkQueryControlFlagBits.
--
[open,refpage='vkCmdEndQuery',desc='Ends a query',type='protos']
@ -772,8 +772,8 @@ include::../api/enums/VkQueryResultFlagBits.txt[]
--
include::../api/flags/VkQueryResultFlags.txt[]
sname:VkQueryResultFlags is a bitmask type for setting a mask of zero or
more slink:VkQueryResultFlagBits.
tname:VkQueryResultFlags is a bitmask type for setting a mask of zero or
more elink:VkQueryResultFlagBits.
--
[open,refpage='vkCmdCopyQueryPoolResults',desc='Copy the results of queries in a query pool to a buffer object',type='protos']
@ -1083,8 +1083,8 @@ fname:vkGetQueryPoolResults).
--
include::../api/flags/VkQueryPipelineStatisticFlags.txt[]
sname:VkQueryPipelineStatisticFlags is a bitmask type for setting a mask of
zero or more slink:VkQueryPipelineStatisticFlagBits.
tname:VkQueryPipelineStatisticFlags is a bitmask type for setting a mask of
zero or more elink:VkQueryPipelineStatisticFlagBits.
--
@ -1241,7 +1241,7 @@ buffer.
A transform feedback query is begun and ended by calling
fname:vkCmdBeginQuery and fname:vkCmdEndQuery, respectively to query for
vertex stream zero.
fname:vkCmdBeginQueryIndexedEXT and fname:vkCmdEndQueryIndexexEXT can: be
fname:vkCmdBeginQueryIndexedEXT and fname:vkCmdEndQueryIndexedEXT can: be
used to begin and end transform feedback queries for any supported vertex
stream.
When a transform feedback query begins, the count of primitives written and

View File

@ -258,7 +258,7 @@ include::../validity/structs/VkRenderPassCreateInfo.txt[]
--
include::../api/flags/VkRenderPassCreateFlags.txt[]
sname:VkRenderPassCreateFlags is a bitmask type for setting a mask, but is
tname:VkRenderPassCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -629,8 +629,8 @@ include::../api/enums/VkAttachmentDescriptionFlagBits.txt[]
--
include::../api/flags/VkAttachmentDescriptionFlags.txt[]
sname:VkAttachmentDescriptionFlags is a bitmask type for setting a mask of
zero or more slink:VkAttachmentDescriptionFlagBits.
tname:VkAttachmentDescriptionFlags is a bitmask type for setting a mask of
zero or more elink:VkAttachmentDescriptionFlagBits.
--
[open,refpage='VkAttachmentLoadOp',desc='Specify how contents of an attachment are treated at the beginning of a subpass',type='enums']
@ -939,8 +939,8 @@ endif::VK_NVX_multiview_per_view_attributes[]
--
include::../api/flags/VkSubpassDescriptionFlags.txt[]
sname:VkSubpassDescriptionFlags is a bitmask type for setting a mask of zero
or more slink:VkSubpassDescriptionFlagBits.
tname:VkSubpassDescriptionFlags is a bitmask type for setting a mask of zero
or more elink:VkSubpassDescriptionFlagBits.
--
[open,refpage='VkAttachmentReference',desc='Structure specifying an attachment reference',type='structs']
@ -1583,7 +1583,7 @@ include::../api/structs/VkAttachmentDescription2KHR.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:flags is a bitmask of elink:VkAttachmentDescription2KHRFlagBits
* pname:flags is a bitmask of elink:VkAttachmentDescriptionFlagBits
specifying additional properties of the attachment.
* pname:format is a elink:VkFormat value specifying the format of the
image that will be used for the attachment.
@ -2072,7 +2072,7 @@ rendering area, and the pname:rasterizationSamples from each pipeline's
slink:VkPipelineMultisampleStateCreateInfo to define the number of samples
used in rasterization; however, if
slink:VkPhysicalDeviceFeatures::pname:variableMultisampleRate is
code:VK_FALSE, then all pipelines to be bound with a given zero-attachment
ename:VK_FALSE, then all pipelines to be bound with a given zero-attachment
subpass must: have the same value for
slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples.
@ -2139,7 +2139,7 @@ include::../validity/structs/VkFramebufferCreateInfo.txt[]
--
include::../api/flags/VkFramebufferCreateFlags.txt[]
sname:VkFramebufferCreateFlags is a bitmask type for setting a mask, but is
tname:VkFramebufferCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--

View File

@ -212,7 +212,7 @@ include::../api/enums/VkBufferUsageFlagBits.txt[]
fname:vkCmdDrawIndirect, fname:vkCmdDrawIndexedIndirect,
ifdef::VK_NV_mesh_shader[]
fname:vkCmdDrawMeshTasksIndirectNV,
fname:vkCmdDrawMeshTasksIndirectCount,
fname:vkCmdDrawMeshTasksIndirectCountNV,
endif::VK_NV_mesh_shader[]
or fname:vkCmdDispatchIndirect.
ifdef::VK_NVX_device_generated_commands[]
@ -245,8 +245,8 @@ endif::VK_NV_ray_tracing[]
--
include::../api/flags/VkBufferUsageFlags.txt[]
sname:VkBufferUsageFlags is a bitmask type for setting a mask of zero or
more slink:VkBufferUsageFlagBits.
tname:VkBufferUsageFlags is a bitmask type for setting a mask of zero or
more elink:VkBufferUsageFlagBits.
--
[open,refpage='VkBufferCreateFlagBits',desc='Bitmask specifying additional parameters of a buffer',type='enums']
@ -284,8 +284,8 @@ memory features supported on a device.
--
include::../api/flags/VkBufferCreateFlags.txt[]
sname:VkBufferCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkBufferCreateFlagBits.
tname:VkBufferCreateFlags is a bitmask type for setting a mask of zero or
more elink:VkBufferCreateFlagBits.
--
ifdef::VK_NV_dedicated_allocation[]
@ -485,7 +485,7 @@ include::../validity/structs/VkBufferViewCreateInfo.txt[]
--
include::../api/flags/VkBufferViewCreateFlags.txt[]
sname:VkBufferViewCreateFlags is a bitmask type for setting a mask, but is
tname:VkBufferViewCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -809,7 +809,7 @@ ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
slink:VkPhysicalDeviceLimits::maxImageArrayLayers.
*** Each component of sname:VkImageFormatProperties::pname:maxExtent is
slink:VkPhysicalDeviceLimits::maxImageDimension2D.
*** sname:VkImageFormatPropertoies::pname:sampleCounts contains exactly
*** sname:VkImageFormatProperties::pname:sampleCounts contains exactly
ename:VK_SAMPLE_COUNT_1_BIT.
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
endif::VK_VERSION_1_1,VK_KHR_external_memory[]
@ -1619,8 +1619,8 @@ endif::VK_NV_shading_rate_image[]
--
include::../api/flags/VkImageUsageFlags.txt[]
sname:VkImageUsageFlags is a bitmask type for setting a mask of zero or more
slink:VkImageUsageFlagBits.
tname:VkImageUsageFlags is a bitmask type for setting a mask of zero or more
elink:VkImageUsageFlagBits.
--
[open,refpage='VkImageCreateFlagBits',desc='Bitmask specifying additional parameters of an image',type='enums']
@ -1733,8 +1733,8 @@ details.
--
include::../api/flags/VkImageCreateFlags.txt[]
sname:VkImageCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkImageCreateFlagBits.
tname:VkImageCreateFlags is a bitmask type for setting a mask of zero or
more elink:VkImageCreateFlagBits.
--
[open,refpage='VkImageType',desc='Specifies the type of an image object',type='enums']
@ -1772,7 +1772,7 @@ ifdef::VK_EXT_image_drm_format_modifier[]
The modifier is specified at image creation with
slink:VkImageDrmFormatModifierListCreateInfoEXT or
slink:VkImageDrmFormatModifierExplicitCreateInfoEXT, and can: be queried
with slink:vkGetImageDrmFormatModifierPropertiesEXT.
with flink:vkGetImageDrmFormatModifierPropertiesEXT.
endif::VK_EXT_image_drm_format_modifier[]
--
@ -2114,6 +2114,7 @@ include::../api/protos/vkDestroyImage.txt[]
include::../validity/protos/vkDestroyImage.txt[]
--
[[resources-image-format-features]]
=== Image Format Features
@ -2156,13 +2157,14 @@ ifdef::VK_EXT_image_drm_format_modifier[]
be the array found by calling
flink:vkGetPhysicalDeviceFormatProperties2 on the same pname:format as
slink:VkImageCreateInfo::pname:format.
** Let slink:VkDrmModifierPropertiesEXT be the array element whose
** Let `VkDrmFormatModifierPropertiesEXT prop` be the array element whose
pname:drmFormatModifier member is the value of the image's DRM format
modifier.
** Then the image set of _format features_ is the value of
slink:VkDrmFormatModifierPropertiesEXT::drmFormatModifierTilingFeatures.
`prop`::pname:drmFormatModifierTilingFeatures.
endif::VK_EXT_image_drm_format_modifier[]
ifdef::VK_NV_corner_sampled_image[]
[[resources-images-corner-sampled]]
=== Corner-Sampled Images
@ -3100,7 +3102,7 @@ include::../validity/structs/VkImageViewCreateInfo.txt[]
--
include::../api/flags/VkImageViewCreateFlags.txt[]
sname:VkImageViewCreateFlags is a bitmask type for setting a mask, but is
tname:VkImageViewCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -3295,8 +3297,8 @@ include::../api/enums/VkImageAspectFlagBits.txt[]
--
include::../api/flags/VkImageAspectFlags.txt[]
sname:VkImageAspectFlags is a bitmask type for setting a mask of zero or
more slink:VkImageAspectFlagBits.
tname:VkImageAspectFlags is a bitmask type for setting a mask of zero or
more elink:VkImageAspectFlagBits.
--
[open,refpage='VkComponentMapping',desc='Structure specifying a color component mapping',type='structs']
@ -3502,11 +3504,11 @@ ifdef::VK_EXT_image_drm_format_modifier[]
be the array found by calling
flink:vkGetPhysicalDeviceFormatProperties2 on the same pname:format as
slink:VkImageViewCreateInfo::pname:format.
** Let slink:VkDrmModifierPropertiesEXT be the array element whose
** Let `VkDrmFormatModifierPropertiesEXT prop` be the array element whose
pname:drmFormatModifier member is the value of the image's DRM format
modifier.
** Then the image view's set of _format features_ is the value of
slink:VkDrmFormatModifierPropertiesEXT::drmFormatModifierTilingFeatures.
`prop`::pname:drmFormatModifierTilingFeatures.
endif::VK_EXT_image_drm_format_modifier[]
[[resources-association]]

View File

@ -252,7 +252,7 @@ include::../validity/structs/VkSamplerCreateInfo.txt[]
--
include::../api/flags/VkSamplerCreateFlags.txt[]
sname:VkSamplerCreateFlags is a bitmask type for setting a mask, but is
tname:VkSamplerCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--

View File

@ -153,7 +153,7 @@ include::../validity/structs/VkShaderModuleCreateInfo.txt[]
--
include::../api/flags/VkShaderModuleCreateFlags.txt[]
sname:VkShaderModuleCreateFlags is a bitmask type for setting a mask, but is
tname:VkShaderModuleCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -1060,7 +1060,7 @@ include::../validity/structs/VkValidationCacheCreateInfoEXT.txt[]
--
include::../api/flags/VkValidationCacheCreateFlagsEXT.txt[]
sname:VkValidationCacheCreateFlagsEXT is a bitmask type for setting a mask,
tname:VkValidationCacheCreateFlagsEXT is a bitmask type for setting a mask,
but is currently reserved for future use.
--

View File

@ -820,8 +820,8 @@ include::../api/enums/VkSparseImageFormatFlagBits.txt[]
--
include::../api/flags/VkSparseImageFormatFlags.txt[]
sname:VkSparseImageFormatFlags is a bitmask type for setting a mask of zero
or more slink:VkSparseImageFormatFlagBits.
tname:VkSparseImageFormatFlags is a bitmask type for setting a mask of zero
or more elink:VkSparseImageFormatFlagBits.
--
[open,refpage='vkGetPhysicalDeviceSparseImageFormatProperties',desc='Retrieve properties of an image format applied to sparse images',type='protos']
@ -1399,8 +1399,8 @@ include::../api/enums/VkSparseMemoryBindFlagBits.txt[]
--
include::../api/flags/VkSparseMemoryBindFlags.txt[]
sname:VkSparseMemoryBindFlags is a bitmask type for setting a mask of zero
or more slink:VkSparseMemoryBindFlagBits.
tname:VkSparseMemoryBindFlags is a bitmask type for setting a mask of zero
or more elink:VkSparseMemoryBindFlagBits.
--
[open,refpage='VkSparseBufferMemoryBindInfo',desc='Structure specifying a sparse buffer memory bind operation',type='structs']

View File

@ -451,8 +451,8 @@ between queues.
--
include::../api/flags/VkPipelineStageFlags.txt[]
sname:VkPipelineStageFlags is a bitmask type for setting a mask of zero or
more slink:VkPipelineStageFlagBits.
tname:VkPipelineStageFlags is a bitmask type for setting a mask of zero or
more elink:VkPipelineStageFlagBits.
--
[[synchronization-pipeline-stages-masks]]
@ -682,7 +682,7 @@ Memory in Vulkan can: be accessed from within shader invocations and via
some fixed-function stages of the pipeline.
The _access type_ is a function of the <<descriptorsets, descriptor type>>
used, or how a fixed-function stage accesses memory.
Each access type corresponds to a bit flag in slink:VkAccessFlagBits.
Each access type corresponds to a bit flag in elink:VkAccessFlagBits.
[[synchronization-access-masks]]
Some synchronization commands take sets of access types as parameters to
@ -834,9 +834,9 @@ ifndef::VK_NV_mesh_shader[]
|ename:VK_ACCESS_SHADER_WRITE_BIT | ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
endif::VK_NV_mesh_shader[]
ifdef::VK_NV_mesh_shader[]
|ename:VK_ACCESS_UNIFORM_READ_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|ename:VK_ACCESS_SHADER_READ_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|ename:VK_ACCESS_SHADER_WRITE_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|ename:VK_ACCESS_UNIFORM_READ_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|ename:VK_ACCESS_SHADER_READ_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|ename:VK_ACCESS_SHADER_WRITE_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
endif::VK_NV_mesh_shader[]
|ename:VK_ACCESS_INPUT_ATTACHMENT_READ_BIT | ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
|ename:VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | ename:VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
@ -909,8 +909,8 @@ explicit memory barrier.
--
include::../api/flags/VkAccessFlags.txt[]
sname:VkAccessFlags is a bitmask type for setting a mask of zero or more
slink:VkAccessFlagBits.
tname:VkAccessFlags is a bitmask type for setting a mask of zero or more
elink:VkAccessFlagBits.
--
@ -1225,8 +1225,8 @@ include::../api/enums/VkFenceCreateFlagBits.txt[]
--
include::../api/flags/VkFenceCreateFlags.txt[]
sname:VkFenceCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkFenceCreateFlagBits.
tname:VkFenceCreateFlags is a bitmask type for setting a mask of zero or
more elink:VkFenceCreateFlagBits.
--
ifdef::VK_VERSION_1_1,VK_KHR_external_fence[]
@ -1332,7 +1332,7 @@ include::../api/protos/vkGetFenceWin32HandleKHR.txt[]
For handle types defined as NT handles, the handles returned by
fname:vkGetFenceWin32HandleKHR are owned by the application.
To avoid leaking resources, the application must: release ownership of them
using the fname:CloseHandle system call when they are no longer needed.
using the code:CloseHandle system call when they are no longer needed.
Exporting a Windows handle from a fence may: have side effects depending on
the transference of the specified handle type, as described in
@ -1775,7 +1775,7 @@ endif::VK_KHR_external_fence_win32,VK_KHR_external_fence_fd[]
implementations to modify an object's internal state, i.e. payload, without
internal synchronization.
However, for fences sharing a payload across processes, satisfying the
external synchronization requirements of fname:VkFence parameters as if all
external synchronization requirements of sname:VkFence parameters as if all
fences in the set were the same object is sometimes infeasible.
Satisfying valid usage constraints on the state of a fence would similarly
require impractical coordination or levels of trust between processes.
@ -1872,7 +1872,7 @@ include::../api/protos/vkImportFenceWin32HandleKHR.txt[]
Importing a fence payload from Windows handles does not transfer ownership
of the handle to the Vulkan implementation.
For handle types defined as NT handles, the application must: release
ownership using the fname:CloseHandle system call when the handle is no
ownership using the code:CloseHandle system call when the handle is no
longer needed.
Applications can: import the same fence payload into multiple instances of
@ -2077,8 +2077,8 @@ or the equivalent
include::../api/flags/VkFenceImportFlagsKHR.txt[]
endif::VK_KHR_external_fence[]
sname:VkFenceImportFlags is a bitmask type for setting a mask of zero or
more slink:VkFenceImportFlagBits.
tname:VkFenceImportFlags is a bitmask type for setting a mask of zero or
more elink:VkFenceImportFlagBits.
--
endif::VK_KHR_external_fence_win32,VK_KHR_external_fence_fd[]
@ -2166,7 +2166,7 @@ include::../validity/structs/VkSemaphoreCreateInfo.txt[]
--
include::../api/flags/VkSemaphoreCreateFlags.txt[]
sname:VkSemaphoreCreateFlags is a bitmask type for setting a mask, but is
tname:VkSemaphoreCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -2284,7 +2284,7 @@ include::../api/protos/vkGetSemaphoreWin32HandleKHR.txt[]
For handle types defined as NT handles, the handles returned by
fname:vkGetSemaphoreWin32HandleKHR are owned by the application.
To avoid leaking resources, the application must: release ownership of them
using the fname:CloseHandle system call when they are no longer needed.
using the code:CloseHandle system call when they are no longer needed.
Exporting a Windows handle from a semaphore may: have side effects depending
on the transference of the specified handle type, as described in
@ -2675,7 +2675,7 @@ endif::VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_fd[]
implementations to modify an object's internal state, i.e. payload, without
internal synchronization.
However, for semaphores sharing a payload across processes, satisfying the
external synchronization requirements of fname:VkSemaphore parameters as if
external synchronization requirements of sname:VkSemaphore parameters as if
all semaphores in the set were the same object is sometimes infeasible.
Satisfying the <<synchronization-semaphores-waiting-state,wait operation
state requirements>> would similarly require impractical coordination or
@ -2777,7 +2777,7 @@ include::../api/protos/vkImportSemaphoreWin32HandleKHR.txt[]
Importing a semaphore payload from Windows handles does not transfer
ownership of the handle to the Vulkan implementation.
For handle types defined as NT handles, the application must: release
ownership using the fname:CloseHandle system call when the handle is no
ownership using the code:CloseHandle system call when the handle is no
longer needed.
Applications can: import the same semaphore payload into multiple instances
@ -2975,8 +2975,8 @@ or the equivalent
include::../api/flags/VkSemaphoreImportFlagsKHR.txt[]
endif::VK_KHR_external_semaphore[]
sname:VkSemaphoreImportFlags is a bitmask type for setting a mask of zero or
more slink:VkSemaphoreImportFlagBits.
tname:VkSemaphoreImportFlags is a bitmask type for setting a mask of zero or
more elink:VkSemaphoreImportFlagBits.
--
endif::VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_fd[]
@ -3047,7 +3047,7 @@ include::../validity/structs/VkEventCreateInfo.txt[]
--
include::../api/flags/VkEventCreateFlags.txt[]
sname:VkEventCreateFlags is a bitmask type for setting a mask, but is
tname:VkEventCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
--
@ -3719,8 +3719,8 @@ endif::VK_VERSION_1_1,VK_KHR_device_group[]
--
include::../api/flags/VkDependencyFlags.txt[]
sname:VkDependencyFlags is a bitmask type for setting a mask of zero or more
slink:VkDependencyFlagBits.
tname:VkDependencyFlags is a bitmask type for setting a mask of zero or more
elink:VkDependencyFlagBits.
--

View File

@ -519,7 +519,7 @@ include::../validity/structs/VkPipelineTessellationStateCreateInfo.txt[]
--
include::../api/flags/VkPipelineTessellationStateCreateFlags.txt[]
sname:VkPipelineTessellationStateCreateFlags is a bitmask type for setting a
tname:VkPipelineTessellationStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--

View File

@ -443,7 +443,7 @@ These cases include:
ifdef::VK_NV_corner_sampled_image[]
* If the image was created with slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, the sampler
addressing modes must: only use a slink:VkSamplerAddressMode of
addressing modes must: only use a elink:VkSamplerAddressMode of
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[]
ifdef::VK_NV_shader_image_footprint[]
@ -2472,8 +2472,8 @@ to ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT, the above summation
is used.
If the reduction mode is ename:VK_SAMPLER_REDUCTION_MODE_MIN_EXT or
ename:VK_SAMPLER_REDUCTION_MODE_MAX_EXT, then the value is instead computed
as [eq]#{tau}~2Daniso~ = reduce({tau}~1~, {ldots}, {tau}~N~)#,
combining all texel values with non-zero weights.
as [eq]#{tau}~2Daniso~ = reduce({tau}~1~, {ldots}, {tau}~N~)#, combining all
texel values with non-zero weights.
endif::VK_EXT_sampler_filter_minmax[]
@ -2518,13 +2518,13 @@ texels whose size is given by the following table:
The code:Coarse input is used to select between the two mip levels that may:
be accessed during texel filtering when using a pname:mipmapMode of
ename:VK_SAMPLER_MIPMAP_MODE_LINEAR.
When filtering between two mip levels, a code:Coarse value of ename:true
When filtering between two mip levels, a code:Coarse value of code:true
requests the footprint in the lower-resolution mip level (higher level
number), while ename:false requests the footprint in the higher-resolution
number), while code:false requests the footprint in the higher-resolution
mip level.
If texel filtering would access only a single mip level, the footprint in
that level would be returned when code:Coarse is set to ename:false; an
empty footprint would be returned when code:Coarse is set to ename:true.
that level would be returned when code:Coarse is set to code:false; an empty
footprint would be returned when code:Coarse is set to code:true.
The footprint for code:OpImageSampleFootprintNV is returned in a structure
with six members:

View File

@ -389,7 +389,7 @@ include::../validity/structs/VkPipelineViewportSwizzleStateCreateInfoNV.txt[]
--
include::../api/flags/VkPipelineViewportSwizzleStateCreateFlagsNV.txt[]
sname:VkPipelineViewportSwizzleStateCreateFlagsNV is a bitmask type for
tname:VkPipelineViewportSwizzleStateCreateFlagsNV is a bitmask type for
setting a mask, but is currently reserved for future use.
--
@ -454,7 +454,7 @@ include::../validity/structs/VkViewportSwizzleNV.txt[]
[open,refpage='VkViewportCoordinateSwizzleNV',desc='Specify how a viewport coordinate is swizzled',type='enums']
--
Possible values of the elink:VkViewportSwizzleNV::pname:x, pname:y, pname:z,
Possible values of the slink:VkViewportSwizzleNV::pname:x, pname:y, pname:z,
and pname:w members, specifying swizzling of the corresponding components of
primitives, are:
@ -842,7 +842,7 @@ include::../validity/structs/VkPipelineViewportStateCreateInfo.txt[]
--
include::../api/flags/VkPipelineViewportStateCreateFlags.txt[]
sname:VkPipelineViewportStateCreateFlags is a bitmask type for setting a
tname:VkPipelineViewportStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
--

View File

@ -16,10 +16,22 @@
# checkLinks.py - validate link/reference API constructs in files
#
# Usage: checkLinks.py files > logfile
# Usage: checkLinks.py [options] files > logfile
#
# Uses vkapi.py, which is a Python representation of relevant parts
# of the Vulkan API.
# Options:
# -follow attempt to follow include:: directives. This script isn't # an
# Asciidoctor processor, so only literal relative paths can # be followed.
# -info print some internal diagnostics.
# -paramcheck attempt to validate param: names against the surrounding
# context (the current structure/function being validated, for example).
# This generates many false positives, so is not enabled by default.
# -fatal unvalidatable links cause immediate error exit from the script.
# Otherwise, errors are accumulated and summarized at the end.
#
# Depends on vkapi.py, which is a Python representation of relevant parts
# of the Vulkan API. Only works when vkapi.py is generated for the full
# API, e.g. 'makeAllExts checklinks'; otherwise many false-flagged errors
# will occur.
import copy, os, pdb, re, string, sys
from vkapi import *
@ -30,8 +42,6 @@ global errCount, warnCount, emittedPrefix, printInfo
curFile = '???'
curLine = -1
sectionDepth = 0
errCount = 0
warnCount = 0
emittedPrefix = {}
printInfo = False
@ -79,7 +89,7 @@ def checkTag(tag, value, dict, dictName, tagName):
# Report an error due to an asciidoc tag which doesn't match
# a corresponding API entity.
def foundError(errType, tag, value):
def foundError(errType, tag, value, fatal):
global curFile, curLine
error('no such', errType, tag + ':' + value)
# Try some heuristics to detect likely problems such as missing vk
@ -87,7 +97,7 @@ def foundError(errType, tag, value):
# Look in all the dictionaries in vkapi.py to see if the tag
# is just wrong but the API entity actually exists.
checkTag(tag, value, flags, 'flags', 'elink')
checkTag(tag, value, flags, 'flags', 'tlink/tname')
checkTag(tag, value, enums, 'enums', 'elink')
checkTag(tag, value, structs, 'structs', 'slink/sname')
checkTag(tag, value, handles, 'handles', 'slink/sname')
@ -99,6 +109,11 @@ def foundError(errType, tag, value):
# Look for missing vk prefixes (quirky since it's case-dependent)
# NOT DONE YET
if fatal:
print('ERROR: %s line %d:' % (curFile, curLine),
' '.join(['no such', errType, tag + ':' + value]), file=sys.stderr)
sys.exit(1)
# Look for param in the list of all parameters of the specified functions
# Returns True if found, False otherwise
def findParam(param, funclist):
@ -149,18 +164,21 @@ def initChecks():
# Validate asciidoc internal links in specified file.
# infile - filename to validate
# follow - if True, recursively follow include:: directives
# paramCheck - if True, try to verify pname: refers to valid
# parameter/member names. This generates many false flags currently
# included - if True, function was called recursively
# fatalExit - if True, validation errors cause an error exit immediately
# Links checked are:
# fname:vkBlah - Vulkan command name (generates internal link)
# flink:vkBlah - Vulkan command name
# sname:VkBlah - Vulkan struct name (generates internal link)
# slink:VkBlah - Vulkan struct name
# elink:VkEnumName - Vulkan enumeration ('enum') type name
# elink:VkEnumName - Vulkan enumeration ('enum') type name (generates internal link)
# ename:VK_BLAH - Vulkan enumerant token name
# pname:name - parameter name to a command or a struct member
# tlink:name - Other Vulkan type name (generates internal link)
# tname:name - Other Vulkan type name
def checkLinks(infile, follow = False, included = False):
def checkLinks(infile, follow = False, paramCheck = True, included = False, fatalExit = False):
global curFile, curLine, curFuncs, curStruct, accumFunc, sectionDepth
global errCount, warnCount
global incPat, linkPat, pathPat, sectionPat
@ -242,7 +260,7 @@ def checkLinks(infile, follow = False, included = False):
# Actually process the included file now, recursively
newpath = os.path.normpath(os.path.join(inPath, incpath))
info(curFile, ': including file:', newpath)
checkLinks(newpath, follow, included=True)
checkLinks(newpath, follow, paramCheck, included = True, fatalExit = fatalExit)
matches = linkPat.findall(line)
for match in matches:
@ -253,20 +271,25 @@ def checkLinks(infile, follow = False, included = False):
value = match[2]
if (tag == 'fname' or tag == 'flink'):
if (value not in protos.keys()):
foundError('function', tag, value)
foundError('function', tag, value, False)
elif (tag == 'sname' or tag == 'slink'):
if (value not in structs.keys() and
value not in handles.keys()):
foundError('aggregate/scalar/handle/define type', tag, value)
foundError('aggregate/scalar/handle/define type', tag, value, False)
elif (tag == 'ename'):
if (value not in consts.keys() and value not in defines.keys()):
foundError('enumerant/constant', tag, value)
foundError('enumerant/constant', tag, value, False)
elif (tag == 'elink'):
if (value not in enums.keys() and value not in flags.keys()):
foundError('enum/bitflag type', tag, value)
elif (tag == 'tlink' or tag == 'tname'):
if (value not in funcpointers.keys()):
foundError('function pointer/other type', tag, value)
foundError('enum/bitflag type', tag, value, fatalExit)
# tname and tlink are the same except if the errors are treated as fatal
# They can be recombined once both are error-clean
elif (tag == 'tname'):
if (value not in funcpointers.keys() and value not in flags.keys()):
foundError('function pointer/other type', tag, value, fatalExit)
elif (tag == 'tlink'):
if (value not in funcpointers.keys() and value not in flags.keys()):
foundError('function pointer/other type', tag, value, False)
elif (tag == 'pname'):
# Any pname: tag means to stop accumulating /protos/
accumFunc = False
@ -277,6 +300,7 @@ def checkLinks(infile, follow = False, included = False):
elif (curFuncs and findParam(value, curFuncs)):
True
else:
if paramCheck:
warning('parameter', value, 'not found. curStruct =',
curStruct, 'curFuncs =', curFuncs)
else:
@ -302,14 +326,38 @@ def checkLinks(infile, follow = False, included = False):
if __name__ == '__main__':
follow = False
paramCheck = False
included = False
fatalExit = False
totalErrCount = 0
totalWarnCount = 0
if (len(sys.argv) > 1):
for file in sys.argv[1:]:
if (file == '-follow'):
follow = True
elif (file == '-info'):
printInfo = True
elif file == '-paramcheck':
paramCheck = True
elif (file == '-fatal'):
fatalExit = True
else:
initChecks()
checkLinks(file, follow)
checkLinks(file,
follow,
paramCheck = paramCheck,
included = included,
fatalExit = fatalExit)
totalErrCount = totalErrCount + errCount
totalWarnCount = totalWarnCount + warnCount
else:
print('Need arguments: [-follow] [-info] infile [infile...]', file=sys.stderr)
print('Need arguments: [-follow] [-info] [-paramcheck] [-fatal] infile [infile...]', file=sys.stderr)
if (totalErrCount > 0 or totalWarnCount > 0):
if (not included):
print('TOTAL Errors found:', totalErrCount, 'Warnings found:',
totalWarnCount)
if totalErrCount > 0:
sys.exit(1)

View File

@ -36,6 +36,8 @@ if __name__ == '__main__':
help='Generate internal build, not public')
parser.add_argument('-norefpages', action='store_true',
help='Do not generate refpages')
parser.add_argument('-chunked', action='store_true',
help='Always generate chunked HTML outputs')
parser.add_argument('-pdf', action='store_true',
help='Always generate PDF outputs')
parser.add_argument('-nov11', action='store_false', dest='v11',
@ -68,6 +70,8 @@ if __name__ == '__main__':
# refPageTargets += ' manpdf'
specTargets = ' html'
if args.chunked:
specTargets += ' chunked'
if args.pdf:
specTargets += ' pdf'

View File

@ -317,22 +317,6 @@
id="path7064"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="marker5716"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path5714"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
@ -626,18 +610,18 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.70710678"
inkscape:cx="336.9947"
inkscape:cy="227.64983"
inkscape:zoom="1"
inkscape:cx="275.51124"
inkscape:cy="235.16674"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
showgrid="false"
inkscape:snap-center="true"
inkscape:snap-object-midpoints="true"
inkscape:snap-text-baseline="true"
inkscape:window-width="1680"
inkscape:window-height="987"
inkscape:window-x="-8"
inkscape:window-width="1920"
inkscape:window-height="1137"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
showguides="false"
@ -664,7 +648,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -801,15 +785,10 @@
sodipodi:role="line">Rasterization</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5106)"
d="M -34.994737,89.387552 V 229.38755 h 120"
d="m 85.005262,89.387553 -119.999999,-10e-7 V 229.38755 h 120"
id="path4474"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5716)"
d="m 85.005263,89.387552 h -120.65"
id="path5712"
inkscape:connector-curvature="0" />
<rect
style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect815-1-4-3-6-1"
@ -872,7 +851,7 @@
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9866)"
d="m 245.00526,64.387552 h -50"
d="m 245.00526,44.387553 h -50"
id="path9856"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
@ -884,7 +863,7 @@
sodipodi:nodetypes="cccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 245.00526,49.387552 h -25 v 15"
d="m 245.00526,64.387553 h -25 v -20"
id="path11116"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
@ -908,7 +887,7 @@
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker12928);marker-end:url(#marker15937)"
d="m 195.00526,334.38755 h 25 V 74.387552 h -25"
d="m 195.00526,334.38755 h 25 l 0,-264.999997 h -25"
id="path15909"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 318 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View File

@ -43,7 +43,7 @@ extern "C" {
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file
#define VK_HEADER_VERSION 91
#define VK_HEADER_VERSION 92
#define VK_NULL_HANDLE 0
@ -1731,6 +1731,10 @@ typedef enum VkStencilFaceFlagBits {
} VkStencilFaceFlagBits;
typedef VkFlags VkStencilFaceFlags;
typedef enum VkRenderPassCreateFlagBits {
VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkRenderPassCreateFlagBits;
typedef struct VkApplicationInfo {
VkStructureType sType;
const void* pNext;
@ -7791,8 +7795,6 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
#define VK_EXT_image_drm_format_modifier 1
#define VK_EXT_EXTENSION_159_SPEC_VERSION 0
#define VK_EXT_EXTENSION_159_EXTENSION_NAME "VK_EXT_extension_159"
#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"

View File

@ -14,10 +14,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# makeAll - invoke Makefile with the right options to build with all
# makeAllExts - invoke Makefile with the right options to build with all
# extensions included.
# Usage: makeAll targets
# Usage: makeAllExts targets
# Load extension list, generated from vk.xml
make config/extDependency.sh || exit

View File

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

View File

@ -439,6 +439,8 @@ table:
type. Example: elink{cl}VkResult -> elink:VkResult.
| ename{cl} | Formats the macro argument as a Vulkan enumerant name.
Example: ename{cl}VK_EVENT_SET -> ename:VK_EVENT_SET.
Note that this is not related to elink{cl}, unlike the
other macro link{cl}/text{cl} pairings.
| etext{cl} | Formats the macro argument like ename{cl}. Not validated.
Examples: etext{cl}_RANGE_SIZE -> etext:_RANGE_SIZE,
etext{cl}VK_IMAGE_CREATE_SPARSE_* ->
@ -456,10 +458,12 @@ table:
Only use this macro <<markup-macros-api-text, when
necessary>>.
| tlink{cl} | Generates a cross-reference or link to the definition
of the Vulkan type in the macro argument. Example:
tlink{cl}PFN_vkAllocationFunction ->
tlink:PFN_vkAllocationFunction. This is only used for
function pointer types at present.
of the Vulkan type in the macro argument.
Example: tlink{cl}PFN_vkAllocationFunction ->
tlink:PFN_vkAllocationFunction.
This is only used for function pointer and `Vk*Flags`
types at present, although it is a potentially a catch-all
for other types not covered by a more specific macro.
| tname{cl} | Formats the macro argument like tlink{cl}. Does not
generate a cross-reference. Example:
tname{cl}PFN_vkAllocationFunction ->

View File

@ -144,6 +144,10 @@ class PyOutputGenerator(OutputGenerator):
if (category == 'struct' or category == 'union'):
self.genStruct(typeinfo, name, alias)
else:
if alias:
# Always emit an alias
count = 1
else:
# Extract the type name
# (from self.genOpts). Copy other text through unchanged.

View File

@ -146,7 +146,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> 91</type>
#define <name>VK_HEADER_VERSION</name> 92</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -7176,6 +7176,7 @@ server.
<type name="VkBaseOutStructure"/>
<type name="VkBaseInStructure"/>
<type name="VkVendorId"/>
<type name="VkRenderPassCreateFlagBits" comment="Workaround to get this included in the API even when it has no bits defined"/>
</require>
</feature>
<feature api="vulkan" name="VK_VERSION_1_1" number="1.1" comment="Vulkan 1.1 core API interface definitions.">
@ -9363,9 +9364,6 @@ server.
</extension>
<extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" requires="VK_KHR_bind_memory2,VK_KHR_get_physical_device_properties2,VK_KHR_image_format_list,VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Chad Versace @chadversary" supported="vulkan">
<require>
<enum value="0" name="VK_EXT_EXTENSION_159_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_159&quot;" name="VK_EXT_EXTENSION_159_EXTENSION_NAME"/>
<enum value="1" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_image_drm_format_modifier&quot;" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME"/>
@ -10123,5 +10121,23 @@ server.
<enum value="&quot;VK_NV_extension_245&quot;" name="VK_NV_EXTENSION_245_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_EXT_extension_246" number="246" author="EXT" contact="Tobias Hector @tobski" supported="disabled">
<require>
<enum value="0" name="VK_EXT_EXTENSION_246_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_246&quot;" name="VK_EXT_EXTENSION_246_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_EXT_extension_247" number="247" author="EXT" contact="Daniel Rakos @drakos-amd" supported="disabled">
<require>
<enum value="0" name="VK_EXT_EXTENSION_247_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_247&quot;" name="VK_EXT_EXTENSION_247_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_EXT_extension_248" number="248" author="EXT" contact="Karl Schultz @karlschultz" supported="disabled">
<require>
<enum value="0" name="VK_EXT_EXTENSION_248_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_248&quot;" name="VK_EXT_EXTENSION_248_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
</registry>