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 - 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 - gem install asciidoctor asciidoctor-mathematical coderay json-schema
script: 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: artifacts:
when: always
paths: paths:
- include/ - include/
- src/ - src/

View File

@ -58,6 +58,7 @@ targets, or they can individually be found as follows:
Vulkan^(R)^ Specification:: Vulkan^(R)^ Specification::
* `html` -- Single-file HTML5 in `$(OUTDIR)/html/vkspec.html`, and KaTeX * `html` -- Single-file HTML5 in `$(OUTDIR)/html/vkspec.html`, and KaTeX
dependency in $(OUTDIR)/katex dependency in $(OUTDIR)/katex
* `chunked` -- Chunked HTML5 in `$(OUTDIR)/html/chap?.html`
* `pdf` -- PDF in `$(OUTDIR)/pdf/vkspec.pdf` * `pdf` -- PDF in `$(OUTDIR)/pdf/vkspec.pdf`
"`styleguide`" (Vulkan^(R)^ Documentation and Extensions: Procedures and Conventions):: "`styleguide`" (Vulkan^(R)^ Documentation and Extensions: Procedures and Conventions)::
* `styleguide` -- Single-file HTML5 in `$(OUTDIR)/styleguide.html` * `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!) for `asciidoctor-mathematical`] (There are a lot of these!)
* KaTeX distribution (version 0.7.0 from https://github.com/Khan/KaTeX. * KaTeX distribution (version 0.7.0 from https://github.com/Khan/KaTeX.
This is cached under `katex/`, and need not be installed from github. 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
[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 Once the Ruby environment is set up, install the required
<<depends-gems,Ruby Gems>>. <<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]] [[depends-osx]]
=== Mac OS X === Mac OS X
@ -742,6 +752,24 @@ gem update
gem clean 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]]
== 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 you probably forgot to call `make clean_generated` as stated in the
<<building-extensions>> chapter. <<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]] [[ruby-env]]
== Alternative Ruby environments == Alternative Ruby environments

View File

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

View File

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

View File

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

View File

@ -34,7 +34,7 @@ None.
=== New Enum Constants === 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_USAGE_ANDROID
** ename:VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID ** ename:VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
** ename:VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_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_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
** ename:VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_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 ** ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
=== New Enums === New Enums

View File

@ -26,11 +26,11 @@ intermediate decoding precision.
Three decoding options are provided: 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. 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. 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. provided as an option in both LDR and HDR mode.
In this mode, negative values cannot be represented and are clamped to In this mode, negative values cannot be represented and are clamped to
zero. 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 `<<VK_EXT_debug_marker>>` is that those extensions use
elink:VkDebugReportObjectTypeEXT to identify objects. elink:VkDebugReportObjectTypeEXT to identify objects.
This extension uses the core elink:VkObjectType in place of 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 The primary reason for this move is that no future object type handle
enumeration values will be added to ename:VkDebugReportObjectTypeEXT since enumeration values will be added to elink:VkDebugReportObjectTypeEXT since
the creation of ename:VkObjectType. the creation of elink:VkObjectType.
In addition, this extension combines the functionality of both In addition, this extension combines the functionality of both
`<<VK_EXT_debug_report>>` and `<<VK_EXT_debug_marker>>` by allowing object `<<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. layout of shared images.
For example, a Wayland compositor and Wayland client may, by relaying For example, a Wayland compositor and Wayland client may, by relaying
_modifiers_ over the Wayland protocol `zwp_linux_dmabuf_v1`, negotiate a _modifiers_ over the Wayland protocol `zwp_linux_dmabuf_v1`, negotiate a
vendor-specific tiling format for a shared stext:wl_buffer. vendor-specific tiling format for a shared code:wl_buffer.
The client may allocate the underlying memory for the stext:wl_buffer with The client may allocate the underlying memory for the code:wl_buffer with
GBM, providing the chosen _modifier_ to fname:gbm_bo_create_with_modifiers. GBM, providing the chosen _modifier_ to code:gbm_bo_create_with_modifiers.
The client may then import the stext:wl_buffer into Vulkan for producing The client may then import the code:wl_buffer into Vulkan for producing
image content, providing the resource's dma_buf to image content, providing the resource's dma_buf to
slink:VkImportMemoryFdInfo and its _modifier_ to slink:VkImportMemoryFdInfoKHR and its _modifier_ to
slink:VkImageDrmFormatModifierExplicitCreateInfoEXT. slink:VkImageDrmFormatModifierExplicitCreateInfoEXT.
The compositor may then import the stext:wl_buffer into OpenGL for sampling, The compositor may then import the code:wl_buffer into OpenGL for sampling,
providing the resource's dma_buf and _modifier_ to fname:eglCreateImage. providing the resource's dma_buf and _modifier_ to code:eglCreateImage.
The compositor may also bypass OpenGL and submit the stext:wl_buffer The compositor may also bypass OpenGL and submit the code:wl_buffer directly
directly to the kernel's display API, providing the dma_buf and _modifier_ to the kernel's display API, providing the dma_buf and _modifier_ through
through stext:drm_mode_fb_cmd2. code:drm_mode_fb_cmd2.
==== Format Translation ==== Format Translation
@ -198,7 +198,7 @@ layout of each plane with flink:vkGetImageSubresourceLayout.
The application then allocates the image's memory with The application then allocates the image's memory with
slink:VkMemoryAllocateInfo, adding chained extension structures for external slink:VkMemoryAllocateInfo, adding chained extension structures for external
memory; binds it to the image; and exports the memory, for example, with 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 Finally, the application sends the image's creation parameters, its
_modifier_, its per-plane memory layout, and the exported memory handle to _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 Extension
`EGL_EXT_image_dma_buf_import`^<<VK_EXT_image_drm_format_modifier-fn1,1>>^ `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. plane a dma_buf, offset, and row pitch.
Later, extension Later, extension
`EGL_EXT_image_dma_buf_import_modifiers`^<<VK_EXT_image_drm_format_modifier-fn2,2>>^ `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_ introduced the ability to query which combination of formats and _modifiers_
the implementation supports and to specify _modifiers_ during creation of the implementation supports and to specify _modifiers_ during creation of
the stext:EGLImage. the code:EGLImage.
Extension Extension
`EGL_MESA_image_dma_buf_export`^<<VK_EXT_image_drm_format_modifier-fn3,3>>^ `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_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_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_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 ** ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
* Extending elink:VkImageTiling: * Extending elink:VkImageTiling:
@ -270,7 +270,7 @@ None.
=== New Structures === New Structures
* Extends elink:VkFormatProperties2: * Extends slink:VkFormatProperties2:
** slink:VkDrmFormatModifierPropertiesListEXT ** slink:VkDrmFormatModifierPropertiesListEXT
* Member of slink:VkDrmFormatModifierPropertiesListEXT: * Member of slink:VkDrmFormatModifierPropertiesListEXT:
@ -342,8 +342,8 @@ the following ways:
.Differences in Image Creation .Differences in Image Creation
- *Undedicated allocation by default.* When importing or exporting a set - *Undedicated allocation by default.* When importing or exporting a set
of dma_bufs as an stext:EGLImage or stext:gbm_bo, common practice of dma_bufs as an code:EGLImage or code:gbm_bo, common practice mandates
mandates that each dma_buf's memory be dedicated (in the sense of that each dma_buf's memory be dedicated (in the sense of
`VK_KHR_dedicated_allocation`) to the image (though not necessarily `VK_KHR_dedicated_allocation`) to the image (though not necessarily
dedicated to a single plane). dedicated to a single plane).
In particular, neither the GBM documentation nor the EGL extension 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. created with ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT.
- *Separation of image creation and memory allocation.* When importing a - *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. 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 This allows EGL and GBM to query each dma_buf's size during image
creation. 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 Suppose that the external image's size is smaller than the
implementation-calculated size. implementation-calculated size.
If the application provided the external image's size to 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 and recognize its inability to comprehend the external image's layout
(unless the implementation used the application-provided size to select a (unless the implementation used the application-provided size to select a
refinement of the tiling layout indicated by the _modifier_, which is 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 The implementation would observe the conflict, and reject image creation
with ename:VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT. 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 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 calling flink:vkGetImageMemoryRequirements that the external image's size is
less than the size required by the implementation. less than the size required by the implementation.
The application would observe the conflict and refuse to bind the 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 Suppose that the external image's size is larger than the
implementation-calculated size. implementation-calculated size.
If the application provided the external image's size to 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 observe the mismatched size and recognize its inability to comprehend the
image data residing in the extra size. image data residing in the extra size.
The implementation, however, must assume that image data resides in the 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) * Revision 1, 2017-12-04 (Vikram Kushwaha)
- First Version - First Version
* Revision 2, 2018-07-16 (Jason Ekstrand) * 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. to match the OpenGL convention.
- Disallow divisors of zero. - Disallow divisors of zero.
* Revision 3, 2018-08-03 (Vikram Kushwaha) * Revision 3, 2018-08-03 (Vikram Kushwaha)

View File

@ -28,11 +28,11 @@ None.
=== New Enum Constants === New Enum Constants
* Extending ename:VkStructureType: * Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR ** ename:VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR
** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_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 ** ename:VK_IMAGE_CREATE_ALIAS_BIT_KHR
=== New Enums === New Enums

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -58,7 +58,7 @@ endif::VK_VERSION_1_1[]
=== New Enums === New Enums
ifdef::VK_VERSION_1_1[] ifdef::VK_VERSION_1_1[]
* slink:VkDeviceGroupPresentModeFlagBitsKHR * elink:VkDeviceGroupPresentModeFlagBitsKHR
* elink:VkSwapchainCreateFlagBitsKHR * elink:VkSwapchainCreateFlagBitsKHR
endif::VK_VERSION_1_1[] endif::VK_VERSION_1_1[]
@ -303,7 +303,7 @@ engine accepts images in.
For example, a presentation engine that does not support transforming For example, a presentation engine that does not support transforming
surfaces as part of presentation, and which is presenting to a surface that 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 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 Applications must transform their rendering by the transform they specify
when creating the swapchain in pname:preTransform field. 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 of presentable images to perform techniques such as partial updates or
motion blurs. motion blurs.
23) What is the purpose of specifying a slink:VkColorSpaceKHR along with 23) What is the purpose of specifying a elink:VkColorSpaceKHR along with
slink:VkFormat when creating a swapchain? elink:VkFormat when creating a swapchain?
*RESOLVED*: While Vulkan itself is color space agnostic (e.g. even the *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 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. This set can be discovered via flink:vkGetPhysicalDeviceSurfaceFormatsKHR.
As it can be expected that most display devices support the sRGB color 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 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? 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 non-linear transfer functions defined by the sRGB standard color space when
reading from or writing to images of that these formats. reading from or writing to images of that these formats.
Still, it is unlikely that a swapchain will expose a etext:*_SRGB format 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 On the other hand, non-etext:*_SRGB formats will be very likely exposed in
pair with a SRGB color space. 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 * create a slink:VkObjectTableNVX, and register the various Vulkan objects
that are needed to evaluate the input parameters. that are needed to evaluate the input parameters.
* create a slink:VkIndirectCommandsLayoutNVX, which lists the * 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. atomic command sequence.
This step likely involves some internal device code compilation, since This step likely involves some internal device code compilation, since
the intent is for the GPU to generate the command buffer in the the intent is for the GPU to generate the command buffer in the
@ -227,7 +227,7 @@ easily.
Same as secondary command buffer Same as secondary command buffer
12) Should sequenceOrdered be part of IndirectCommandsLayout or 12) Should sequenceOrdered be part of IndirectCommandsLayout or
slink:vkCmdProcessCommandsNVX? flink:vkCmdProcessCommandsNVX?
Seems better for IndirectCommandsLayout, as that is when most heavy lifting Seems better for IndirectCommandsLayout, as that is when most heavy lifting
in terms of internal device code generation is done. 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 c) The pname:targetCommandbuffer must be inside the "`begin`" state already
at the moment of being passed. 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. etext:VK_COMMAND_BUFFER_USAGE_DEVICE_GENERATED_BIT.
d) The pname:targetCommandbuffer must reserve space via a new function. d) The pname:targetCommandbuffer must reserve space via a new function.

View File

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

View File

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

View File

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

View File

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

View File

@ -159,7 +159,7 @@ natural place to access the shading rate image.
pixel? pixel?
*RESOLVED* For single-pixel fragments, fragment shader inputs decorated with *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 intersection of the area of the primitive being rasterized and the area of
the pixel that corresponds to the fragment. the pixel that corresponds to the fragment.
With multi-pixel fragments, we follow a similar pattern, using the 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:linearTilingFeatures
* slink:VkImageFormatProperties::pname:optimalTilingFeatures * slink:VkImageFormatProperties::pname:optimalTilingFeatures
ifdef::VK_EXT_image_drm_format_modifier[] ifdef::VK_EXT_image_drm_format_modifier[]
* slink:VkDrmFormatPropertiesEXT::pname:drmFormatModifierTilingFeatures * slink:VkDrmFormatModifierPropertiesEXT::pname:drmFormatModifierTilingFeatures
endif::VK_EXT_image_drm_format_modifier[] endif::VK_EXT_image_drm_format_modifier[]
Color Sample Mask:: Color Sample Mask::
@ -796,7 +796,7 @@ ifdef::VK_EXT_image_drm_format_modifier[]
* a slink:VkImage created with * a slink:VkImage created with
ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose
<<glossary-drm-format-modifier,Linux DRM format modifier>> is <<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[] endif::VK_EXT_image_drm_format_modifier[]
+ +
A resource is _non-linear_ if it is one of the following: 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 * a slink:VkImage created with
ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose
<<glossary-drm-format-modifier,Linux DRM format modifier>> is not <<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[] endif::VK_EXT_image_drm_format_modifier[]
ifdef::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, * code:HitAttributeNV storage class must: only be used in intersection,
any hit, or closest hit shaders. any hit, or closest hit shaders.
* code:CallableDataNV storage class must: only be used in ray generation, * 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 * code:IncomingCallableDataNV storage class must only be used in callable
shaders. shaders.
endif::VK_NV_ray_tracing[] 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 all preceding commands have finished executing up to at least the specified
pipeline stage. pipeline stage.
This includes the completion of other preceding 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 stages occur either at the same time or earlier than this command's
specified pname:pipelineStage. specified pname:pipelineStage.

View File

@ -114,8 +114,8 @@ include::../api/enums/VkDebugReportFlagBitsEXT.txt[]
-- --
include::../api/flags/VkDebugReportFlagsEXT.txt[] include::../api/flags/VkDebugReportFlagsEXT.txt[]
sname:VkDebugReportFlagsEXT is a bitmask type for setting a mask of zero or tname:VkDebugReportFlagsEXT is a bitmask type for setting a mask of zero or
more slink:VkDebugReportFlagBitsEXT. more elink:VkDebugReportFlagBitsEXT.
-- --
[open,refpage='PFN_vkDebugReportCallbackEXT',desc='Application-defined debug report callback function',type='funcpointers'] [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]
.Note .Note
==== ====
The values of ename:VkDebugUtilsMessageSeverityFlagBitsEXT are sorted based The values of elink:VkDebugUtilsMessageSeverityFlagBitsEXT are sorted based
on severity. on severity.
The higher the flag value, the more severe the message. The higher the flag value, the more severe the message.
This allows for simple boolean operation comparisons when looking at This allows for simple boolean operation comparisons when looking at
ename:VkDebugUtilsMessageSeverityFlagBitsEXT values. elink:VkDebugUtilsMessageSeverityFlagBitsEXT values.
For example: For example:

View File

@ -69,7 +69,7 @@ include::../../api/enums/VkSurfaceCounterFlagBitsEXT.txt[]
-- --
include::../../api/flags/VkSurfaceCounterFlagsEXT.txt[] include::../../api/flags/VkSurfaceCounterFlagsEXT.txt[]
sname:VkSurfaceCounterFlagsEXT is a bitmask type for setting a mask of zero tname:VkSurfaceCounterFlagsEXT is a bitmask type for setting a mask of zero
or more slink:VkSurfaceCounterFlagBitsEXT. 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 The results for a given pname:swapchain and pname:presentID are only
returned once from fname:vkGetPastPresentationTimingGOOGLE. 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. occasionally adjust its timing.
For example, if pname:actualPresentTime is later than expected (e.g. one For example, if pname:actualPresentTime is later than expected (e.g. one
pname:refreshDuration late), the application may increase its target IPD to 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. should: return the maximum resolution supported.
==== ====
* pname:supportedTransforms tells which transforms are supported by this * pname:supportedTransforms is a bitmask of
display. elink:VkSurfaceTransformFlagBitsKHR describing which transforms are
This will contain one or more of the bits from supported by this display.
sname:VkSurfaceTransformFlagsKHR.
* pname:planeReorderPossible tells whether the planes on this display can: * pname:planeReorderPossible tells whether the planes on this display can:
have their z order changed. have their z order changed.
If this is ename:VK_TRUE, the application can: re-arrange the planes on 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[] include::../../api/flags/VkDisplayPlaneAlphaFlagsKHR.txt[]
sname:VkDisplayPlaneAlphaFlagsKHR is a bitmask type for setting a mask of tname:VkDisplayPlaneAlphaFlagsKHR is a bitmask type for setting a mask of
zero or more slink:VkDisplayPlaneAlphaFlagBitsKHR. 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 * pname:pSwapchains is a pointer to an array of slink:VkSwapchainKHR
handles in which the created swapchain objects will be returned. handles in which the created swapchain objects will be returned.
fname:vkCreateSharedSwapchains is similar to flink:vkCreateSwapchainKHR, fname:vkCreateSharedSwapchainsKHR is similar to flink:vkCreateSwapchainKHR,
except that it takes an array of sname:VkSwapchainCreateInfoKHR structures, except that it takes an array of slink:VkSwapchainCreateInfoKHR structures,
and returns an array of swapchain objects. and returns an array of swapchain objects.
The swapchain creation parameters that affect the properties and number of 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[] include::../../api/flags/VkSurfaceTransformFlagsKHR.txt[]
sname:VkSurfaceTransformFlagsKHR is a bitmask type for setting a mask of tname:VkSurfaceTransformFlagsKHR is a bitmask type for setting a mask of
zero or more slink:VkSurfaceTransformFlagBitsKHR. zero or more elink:VkSurfaceTransformFlagBitsKHR.
-- --
@ -552,8 +552,8 @@ These values are described as follows:
-- --
include::../../api/flags/VkCompositeAlphaFlagsKHR.txt[] include::../../api/flags/VkCompositeAlphaFlagsKHR.txt[]
sname:VkCompositeAlphaFlagsKHR is a bitmask type for setting a mask of zero tname:VkCompositeAlphaFlagsKHR is a bitmask type for setting a mask of zero
or more slink:VkCompositeAlphaFlagBitsKHR. or more elink:VkCompositeAlphaFlagBitsKHR.
-- --
[open,refpage='vkGetPhysicalDeviceSurfaceFormatsKHR',desc='Query color formats supported by surface',type='protos'] [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[] include::../../api/flags/VkDeviceGroupPresentModeFlagsKHR.txt[]
sname:VkDeviceGroupPresentModeFlagsKHR is a bitmask type for setting a mask tname:VkDeviceGroupPresentModeFlagsKHR is a bitmask type for setting a mask
of zero or more slink:VkDeviceGroupPresentModeFlagBitsKHR. of zero or more elink:VkDeviceGroupPresentModeFlagBitsKHR.
-- --
[open,refpage='vkGetDeviceGroupSurfacePresentModesKHR',desc='Query present capabilities for a surface',type='protos'] [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:device is the logical device.
* pname:surface is the surface. * pname:surface is the surface.
* pname:pModes is a pointer to a value of type * 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. device group present modes for the surface.
The modes returned by this command are not invariant, and may: change in 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. many images, or it will fail to create the swapchain.
* pname:imageFormat is a elink:VkFormat value specifying the format the * pname:imageFormat is a elink:VkFormat value specifying the format the
swapchain image(s) will be created with. 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. way the swapchain interprets image data.
* pname:imageExtent is the size (in pixels) of the swapchain image(s). * pname:imageExtent is the size (in pixels) of the swapchain image(s).
The behavior is platform-dependent if the image extent does not match The behavior is platform-dependent if the image extent does not match
@ -210,15 +210,15 @@ associated with pname:oldSwapchain.
.Note .Note
==== ====
Multiple retired swapchains can: be associated with the same 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. 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 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 E.g., an application may present an image from the old swapchain before an
image from the new swapchain is ready to be presented. 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. entered a state that causes ename:VK_ERROR_OUT_OF_DATE_KHR to be returned.
ifdef::VK_KHR_shared_presentable_image[] ifdef::VK_KHR_shared_presentable_image[]
@ -377,8 +377,8 @@ endif::VK_VERSION_1_1[]
-- --
include::../../api/flags/VkSwapchainCreateFlagsKHR.txt[] include::../../api/flags/VkSwapchainCreateFlagsKHR.txt[]
sname:VkSwapchainCreateFlagsKHR is a bitmask type for setting a mask of zero tname:VkSwapchainCreateFlagsKHR is a bitmask type for setting a mask of zero
or more slink:VkSwapchainCreateFlagBitsKHR. or more elink:VkSwapchainCreateFlagBitsKHR.
-- --
ifdef::VK_VERSION_1_1,VK_KHR_device_group[] 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 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 The memory for each image will not alias with the memory for other images or
with any sname:VkDeviceMemory object. with any sname:VkDeviceMemory object.
As such, performing any operation affecting the binding of memory to a 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 of slink:VkSurfaceCapabilitiesKHR::pname:minImageCount as returned by a
call to flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR with the call to flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR with the
pname:surface used to create pname:swapchain, pname:timeout must: not be pname:surface used to create pname:swapchain, pname:timeout must: not be
ename:UINT64_MAX code:UINT64_MAX
**** ****
include::../../validity/protos/vkAcquireNextImageKHR.txt[] 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, If the specified timeout period expires before an image is acquired,
fname:vkAcquireNextImageKHR returns ename:VK_TIMEOUT. 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 infinite, and fname:vkAcquireNextImageKHR will block until an image is
acquired or an error occurs. 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 equal to the difference between the number of images in pname:swapchain and
the value of slink:VkSurfaceCapabilitiesKHR::pname:minImageCount. the value of slink:VkSurfaceCapabilitiesKHR::pname:minImageCount.
If the number of currently acquired images is greater than this, If the number of currently acquired images is greater than this,
fname:vkAcquireNextImage should: not be called; if it is, pname:timeout fname:vkAcquireNextImageKHR should: not be called; if it is, pname:timeout
must: not be ename:UINT64_MAX. must: not be code:UINT64_MAX.
If an image is acquired successfully, fname:vkAcquireNextImage must: either If an image is acquired successfully, fname:vkAcquireNextImageKHR must:
return ename:VK_SUCCESS, or ename:VK_SUBOPTIMAL_KHR if the swapchain no either return ename:VK_SUCCESS, or ename:VK_SUBOPTIMAL_KHR if the swapchain
longer matches the surface properties exactly, but can: still be used for no longer matches the surface properties exactly, but can: still be used for
presentation. presentation.
[NOTE] [NOTE]
@ -784,7 +784,7 @@ pname:timeout provided:
* ename:VK_NOT_READY is returned if pname:timeout is zero and no image was * ename:VK_NOT_READY is returned if pname:timeout is zero and no image was
available. available.
* ename:VK_TIMEOUT is returned if pname:timeout is greater than zero and * 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. allowed.
* ename:VK_SUBOPTIMAL_KHR is returned if an image became available, and * ename:VK_SUBOPTIMAL_KHR is returned if an image became available, and
the swapchain no longer matches the surface properties exactly, but can: 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 slink:VkSurfaceCapabilitiesKHR::pname:minImageCount as returned by a
call to flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR with the call to flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR with the
pname:surface used to create pname:swapchain, the pname:timeout member 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[] 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 * pname:commandBuffer is the secondary command buffer in which the space
for device-generated commands is reserved. for device-generated commands is reserved.
* pname:pProcessCommandsInfo is a pointer to an instance of the * pname:pProcessCommandsInfo is a pointer to an instance of the
slink:vkCmdReserveSpaceForCommandsNVX structure containing parameters slink:VkCmdReserveSpaceForCommandsInfoNVX structure containing
affecting the reservation of command buffer space. parameters affecting the reservation of command buffer space.
.Valid Usage .Valid Usage
**** ****
@ -105,8 +105,8 @@ include::../../api/structs/VkCmdProcessCommandsInfoNVX.txt[]
pname:sequencesCountBuffer where the count value is stored. pname:sequencesCountBuffer where the count value is stored.
* pname:sequencesIndexBuffer must: be set if * pname:sequencesIndexBuffer must: be set if
pname:indirectCommandsLayout's pname:indirectCommandsLayout's
ename:VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT is set and ename:VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX is set
provides the used sequence indices as ftext:uint32_t array. and provides the used sequence indices as ftext:uint32_t array.
Otherwise it must: be dlink:VK_NULL_HANDLE. Otherwise it must: be dlink:VK_NULL_HANDLE.
* pname:sequencesIndexOffset is the byte offset into * pname:sequencesIndexOffset is the byte offset into
pname:sequencesIndexBuffer where the index values start. 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 The processing of each sequence is considered stateless, therefore all state
changes must: occur prior work provoking commands within the sequence. changes must: occur prior work provoking commands within the sequence.
A single sequence is either strictly targeting 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. ename:VK_PIPELINE_BIND_POINT_COMPUTE.
The primary input data for each token is provided through sname:VkBuffer 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:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific 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. layout targets.
* pname:flags is a bitmask of * pname:flags is a bitmask of
elink:VkIndirectCommandsLayoutUsageFlagBitsNVX specifying usage hints of elink:VkIndirectCommandsLayoutUsageFlagBitsNVX specifying usage hints of
@ -343,8 +343,8 @@ include::../../api/enums/VkIndirectCommandsLayoutUsageFlagBitsNVX.txt[]
-- --
include::../../api/flags/VkIndirectCommandsLayoutUsageFlagsNVX.txt[] include::../../api/flags/VkIndirectCommandsLayoutUsageFlagsNVX.txt[]
sname:VkIndirectCommandsLayoutUsageFlagsNVX is a bitmask type for setting a tname:VkIndirectCommandsLayoutUsageFlagsNVX is a bitmask type for setting a
mask of zero or more slink:VkIndirectCommandsLayoutUsageFlagBitsNVX. mask of zero or more elink:VkIndirectCommandsLayoutUsageFlagBitsNVX.
-- --
[open,refpage='vkDestroyIndirectCommandsLayoutNVX',desc='Destroy an object table',type='protos'] [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[] include::../../api/flags/VkObjectEntryUsageFlagsNVX.txt[]
sname:VkObjectEntryUsageFlagsNVX is a bitmask type for setting a mask of tname:VkObjectEntryUsageFlagsNVX is a bitmask type for setting a mask of
zero or more slink:VkObjectEntryUsageFlagBitsNVX. zero or more elink:VkObjectEntryUsageFlagBitsNVX.
-- --
[open,refpage='vkDestroyObjectTableNVX',desc='Destroy an object table',type='protos'] [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[] include::../../api/structs/VkObjectTableEntryNVX.txt[]
* pname:type defines the entry type * 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. used with.
Some entry types allow only a single flag to be set. 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 * pname:buffer specifies the slink:VkBuffer that can be bound as index
buffer buffer
* pname:indexType specifies the slink:VkIndexType used with this index * pname:indexType specifies the elink:VkIndexType used with this index
buffer buffer
.Valid Usage .Valid Usage
@ -331,7 +331,7 @@ include::../../api/structs/VkObjectTablePushConstantEntryNVX.txt[]
* pname:pipelineLayout specifies the slink:VkPipelineLayout that the * pname:pipelineLayout specifies the slink:VkPipelineLayout that the
pushconstants are used with pushconstants are used with
* pname:stageFlags specifies the slink:VkShaderStageFlags that the * pname:stageFlags specifies the tlink:VkShaderStageFlags that the
pushconstants are used with pushconstants are used with
.Valid Usage .Valid Usage
@ -355,7 +355,7 @@ include::../../api/protos/vkUnregisterObjectsNVX.txt[]
unregistered. unregistered.
* pname:objectCount is the number of resources being removed from the * pname:objectCount is the number of resources being removed from the
object table. object table.
* pname:pObjectEntryType provides an array of slink:VkObjectEntryTypeNVX * pname:pObjectEntryType provides an array of elink:VkObjectEntryTypeNVX
for the resources being removed. for the resources being removed.
* pname:pObjectIndices provides the array of object indices to be 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_TOP_OF_PIPE_BIT, and
ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT. ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT.
If the device is lost, the application can: call 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 both pipeline stages, indicating the range of diagnostic checkpoints that
are currently in the execution pipeline on the device. 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 Device diagnostic checkpoints are inserted into the command stream by
calling slink:vkCmdSetCheckpointNV. calling flink:vkCmdSetCheckpointNV.
include::../../api/protos/vkCmdSetCheckpointNV.txt[] 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 return a ename:VK_ERROR_DEVICE_LOST error to the application at a certain
point during host execution. point during host execution.
When this happens, the application can: call 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. diagnostic checkpoints that were executed by the device.
include::../../api/protos/vkGetQueueCheckpointDataNV.txt[] 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 retrieve checkpoint data for
* pname:pCheckpointDataCount is a pointer to an integer related to the * pname:pCheckpointDataCount is a pointer to an integer related to the
number of checkpoint markers available or queried, as described below. 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 Note that the stages at which a checkpoint marker can: be executed are
implementation-defined and can: be queried by calling 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, * pname:flags is a bitmask describing additional parameters of the image,
corresponding to slink:VkImageCreateInfo::pname:flags. corresponding to slink:VkImageCreateInfo::pname:flags.
* pname:externalHandleType is either one of the bits from * 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 * pname:pExternalImageFormatProperties points to an instance of the
slink:VkExternalImageFormatPropertiesNV structure in which capabilities slink:VkExternalImageFormatPropertiesNV structure in which capabilities
are returned. are returned.
@ -72,7 +72,7 @@ include::../../validity/structs/VkExternalImageFormatPropertiesNV.txt[]
-- --
Bits which can: be set in Bits which can: be set in
slink:VkExternalMemoryFeatureFlagBitsNV::pname:externalMemoryFeatures, slink:VkExternalImageFormatPropertiesNV::pname:externalMemoryFeatures,
indicating properties of the external memory handle type, are: indicating properties of the external memory handle type, are:
include::../../api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[] include::../../api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[]
@ -91,6 +91,6 @@ include::../../api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[]
-- --
include::../../api/flags/VkExternalMemoryFeatureFlagsNV.txt[] include::../../api/flags/VkExternalMemoryFeatureFlagsNV.txt[]
sname:VkExternalMemoryFeatureFlagsNV is a bitmask type for setting a mask of tname:VkExternalMemoryFeatureFlagsNV is a bitmask type for setting a mask of
zero or more slink:VkExternalMemoryFeatureFlagBitsNV. zero or more elink:VkExternalMemoryFeatureFlagBitsNV.
-- --

View File

@ -70,7 +70,7 @@ endif::editing-notes[]
-- --
include::../../api/flags/VkExternalMemoryHandleTypeFlagsNV.txt[] include::../../api/flags/VkExternalMemoryHandleTypeFlagsNV.txt[]
sname:VkExternalMemoryHandleTypeFlagsNV is a bitmask type for setting a mask tname:VkExternalMemoryHandleTypeFlagsNV is a bitmask type for setting a mask
of zero or more slink:VkExternalMemoryHandleTypeFlagBitsNV. 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 Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using 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. ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[] 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 Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using 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. ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[] 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:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure. * pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:compactedSize is the size from the result of * 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. 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 for the acceleration structure's parameters
.Valid Usage .Valid Usage
**** ****
* [[VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421]] * [[VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421]]
If pname:compactedSize is not `0` then both 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` must: be `0`
**** ****
@ -92,18 +92,18 @@ include::../../api/structs/VkAccelerationStructureInfoNV.txt[]
* pname:sType is the type of this structure. * pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure. * pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:type is a ename:VkAccelerationStructureTypeBitsNV value that * pname:type is a elink:VkAccelerationStructureMemoryRequirementsTypeNV
specifies the type of acceleration structure that will be created. value specifying the type of acceleration structure that will be
* pname:flags is a set of ename:VkBuildAccelerationStructureFlagBitsNV created.
values that specify additional parameters of the acceleration structure. * 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 * pname:instanceCount specifies the number of instances that will be in
the new acceleration structure the new acceleration structure
* pname:geometryCount specifies the number of geometries that will be in * pname:geometryCount specifies the number of geometries that will be in
the new acceleration structure 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. contain the scene data being passed into the acceleration structure.
sname:VkAccelerationStructureInfoNV contains information that's used both sname:VkAccelerationStructureInfoNV contains information that's used both
for acceleration structure creation with for acceleration structure creation with
fname:vkCreateAccelerationStructureNV and in combination with the actual fname:vkCreateAccelerationStructureNV and in combination with the actual
@ -137,6 +137,7 @@ fname:vkCmdBuildAccelerationStructureNV.
include::../../validity/structs/VkAccelerationStructureInfoNV.txt[] include::../../validity/structs/VkAccelerationStructureInfoNV.txt[]
-- --
[open,refpage='VkBuildAccelerationStructureFlagBitsNV',desc='Bitmask specifying additional parameters for acceleration structure builds',type='enums'] [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. update with a source that also had this flag set.
* ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV indicates * ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV indicates
that the specified acceleration structure may: act as the source for 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 ename:VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV to produce a
compacted acceleration structure. compacted acceleration structure.
* ename:VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV indicates * 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 time and memory than a normal build, so should only be used when those
features are used. features are used.
==== ====
-- --
[open,refpage='VkGeometryNV',desc='Structure specifying a geometry in a bottom-level acceleration structure',type='structs'] [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[] include::../../api/enums/VkGeometryFlagBitsNV.txt[]
* ename:VK_GEOMETRY_OPAQUE_BIT_NV indicates that this geometry does not * 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 * ename:VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV indicates that
the implementation must: only call any hit a single time for each the implementation must: only call any hit a single time for each
primitive in this geometry. 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'] [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, 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[] include::../../validity/structs/VkGeometryAABBNV.txt[]
-- --
[open,refpage='vkDestroyAccelerationStructureNV',desc='Destroy an acceleration structure object',type='protos'] [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'] [open,refpage='vkBindAccelerationStructureMemoryNV',desc='Bind acceleration structure memory',type='protos']
-- --
@ -537,7 +533,6 @@ include::../../api/structs/VkBindAccelerationStructureMemoryInfoNV.txt[]
include::../../validity/structs/VkBindAccelerationStructureMemoryInfoNV.txt[] include::../../validity/structs/VkBindAccelerationStructureMemoryInfoNV.txt[]
-- --
[open,refpage='vkGetAccelerationStructureHandleNV',desc='Get opaque acceleration structure handle',type='protos'] [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 Interaction between the different shader stages in the ray tracing pipeline
**** ****
[[raytracing-commands]] [[raytracing-commands]]
== Ray Tracing Commands == Ray Tracing Commands
_Ray tracing commands_ provoke work in the raytacing pipeline. _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 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 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. an implementation-specific way.
The relationship between the ray tracing pipeline object and the The relationship between the ray tracing pipeline object and the
acceleration structures is passed into the raytacing command in a 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 During execution, control alternates between scheduling and other
operations. operations.
@ -245,7 +246,7 @@ ifdef::VK_NV_corner_sampled_image[]
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must: only be sampled using 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. ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[] endif::VK_NV_corner_sampled_image[]
**** ****
@ -253,6 +254,7 @@ endif::VK_NV_corner_sampled_image[]
include::../../validity/protos/vkCmdTraceRaysNV.txt[] include::../../validity/protos/vkCmdTraceRaysNV.txt[]
-- --
[[shader-binding-table]] [[shader-binding-table]]
== Shader Binding Table == Shader Binding Table
@ -264,7 +266,7 @@ structure.
In addition, it contains the resources accessed by each shader, including In addition, it contains the resources accessed by each shader, including
indices of textures and constants. indices of textures and constants.
The application allocates and manages _shader binding tables_ as 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 Each entry in the shader binding table consists of pname:shaderHeaderSize
bytes of data as queried by vkGetRayTracingShaderHandlesNV to refer to the 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 Shader binding tables are read-only in shaders that are executing on the ray
tracing pipeline. tracing pipeline.
[[shader-binding-table-indexing-rules]] [[shader-binding-table-indexing-rules]]
=== 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 memory in a way that application of the indexing rules will lead to correct
records. records.
==== Ray Generation Shaders ==== Ray Generation Shaders
Only one ray generation shader is executed per ray tracing dispatch. Only one ray generation shader is executed per ray tracing dispatch.
Its location is passed into fname:vkCmdTraceRaysNV using the Its location is passed into fname:vkCmdTraceRaysNV using the
pname:raygenShaderBindingTableBuffer and pname:raygenShaderBindingTableBuffer and
pname:raygenShaderBindingTableOffset parameters - there is no indexing. pname:raygenShaderBindingTableOffset parameters - there is no indexing.
==== Hit Shaders ==== Hit Shaders
The base for the computation of intersection, any hit and closest hit shader The base for the computation of intersection, any hit and closest hit shader
locations is the pname:instanceShaderBindingTableRecordOffset value stored locations is the pname:instanceShaderBindingTableRecordOffset value stored
with each instance of a top-level acceleration structure. 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. geometry within the instance.
The pname:sbtRecordStride and pname:sbtRecordOffset values are passed in as 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 See Section 8.19 (Ray Tracing Functions) of the OpenGL Shading Language
Specification for more details. 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} hitProgramShaderBindingTableBaseIndex {plus} geometryIndex {times}
sbtRecordStride {plus} sbtRecordOffset# sbtRecordStride {plus} sbtRecordOffset#
==== Miss Shaders ==== Miss Shaders
A Miss shader is executed whenever a ray query fails to find an intersection A Miss shader is executed whenever a ray query fails to find an intersection
for the given scene geometry. for the given scene geometry.
Multiple miss shaders can be executed throughout a ray tracing dispatch. 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 pname:missProgramShaderBindingTableBaseIndex, a base index passed into
fname:vkCmdTraceRaysNV. fname:vkCmdTraceRaysNV.
The pname:sbtRecordOffset value is passed in as parameters to The pname:sbtRecordOffset value is passed in as parameters to code:traceNV()
fname:traceNV() calls made in the shaders. calls made in the shaders.
See Section 8.19 (Ray Tracing Functions) of the OpenGL Shading Language See Section 8.19 (Ray Tracing Functions) of the OpenGL Shading Language
Specification for more details. 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# :: [eq]#missIndex {times} missShaderBindingStride {plus} sbtRecordOffset#
[[acceleration-structure]] [[acceleration-structure]]
== Acceleration Structures == Acceleration Structures
_Acceleration structures_ are data structures used by the implementation to _Acceleration structures_ are data structures used by the implementation to
efficiently manage the scene geometry as it is traversed during a ray efficiently manage the scene geometry as it is traversed during a ray
tracing query. tracing query.
@ -362,22 +373,24 @@ The diagram shows the relationship between top and bottom level acceleration
structures. structures.
**** ****
[[acceleration-structure-instance]] [[acceleration-structure-instance]]
=== Instances === Instances
_Instances_ are found in top level acceleration structures and contain data _Instances_ are found in top level acceleration structures and contain data
that refer to a single bottom-level acceleration structure, a transform that refer to a single bottom-level acceleration structure, a transform
matrix, and shading information. matrix, and shading information.
Multiple instances may point to a single bottom level acceleration Multiple instances may point to a single bottom level acceleration
structure. structure.
An instance is defined in a VkBuffer by a structure consisting of 64 bytes An instance is defined in a slink:VkBuffer by a structure consisting of 64
of data. bytes of data.
* pname:transform is 12 floats representing a 4x3 transform matrix in * pname:transform is 12 floats representing a 4x3 transform matrix in
row-major order row-major order
* pname:instanceCustomIndex The low 24 bits of a 32-bit integer after the * pname:instanceCustomIndex The low 24 bits of a 32-bit integer after the
transform. 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. * pname:mask The high 8 bits of the same integer as instanceCustomIndex.
This is the visibility mask. This is the visibility mask.
The instance can only be hit if rayMask & instance.mask != 0 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 { struct VkGeometryInstanceNV {
float transform[12]; float transform[12];
uint32_t instanceId : 24; uint32_t instanceCustomIndex : 24;
uint32_t mask : 8; uint32_t mask : 8;
uint32_t instanceOffset : 24; uint32_t instanceOffset : 24;
uint32_t flags : 8; 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 * 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 act as though ename:VK_GEOMETRY_OPAQUE_BIT_NV were specified on all
geometries referenced by this instance. 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 * 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. 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_NO_OPAQUE_BIT_NV and
ename:VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV must: not be used in the same ename:VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV must: not be used in the same
@ -441,21 +456,29 @@ flag.
-- --
[[acceleration-structure-geometry]] [[acceleration-structure-geometry]]
=== Geometry === Geometry
_Geometries_ refer to a triangle or axis-aligned bounding box. _Geometries_ refer to a triangle or axis-aligned bounding box.
[[acceleration-structure-top-level]] [[acceleration-structure-top-level]]
=== Top Level Acceleration Structures === Top Level Acceleration Structures
Opaque acceleration structure for an array of instances. Opaque acceleration structure for an array of instances.
The descriptor referencing this is the starting point for tracing The descriptor referencing this is the starting point for tracing
[[acceleration-structure-bottom-level]] [[acceleration-structure-bottom-level]]
=== Bottom Level Acceleration Structures === Bottom Level Acceleration Structures
Opaque acceleration structure for an array of geometries. Opaque acceleration structure for an array of geometries.
[[acceleration-structure-building]] [[acceleration-structure-building]]
=== Building Acceleration Structures === Building Acceleration Structures
[open,refpage='vkCmdBuildAccelerationStructureNV',desc='Build an acceleration structure',type='protos'] [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:dst points to the target acceleration structure for the build.
* pname:src points to an existing acceleration structure that can be used * pname:src points to an existing acceleration structure that can be used
to update the pname:dst acceleration structure. 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. for the build.
* pname:scratchOffset is the offset in bytes relative to the start of * pname:scratchOffset is the offset in bytes relative to the start of
pname:scratch that will be used as scratch memory. pname:scratch that will be used as scratch memory.
@ -529,6 +552,7 @@ include::../../api/protos/vkCmdBuildAccelerationStructureNV.txt[]
include::../../validity/protos/vkCmdBuildAccelerationStructureNV.txt[] include::../../validity/protos/vkCmdBuildAccelerationStructureNV.txt[]
-- --
[[acceleration-structure-copying]] [[acceleration-structure-copying]]
=== Copying Acceleration Structures === Copying Acceleration Structures
@ -595,7 +619,7 @@ include::../../api/protos/vkCmdCopyAccelerationStructureNV.txt[]
recorded. recorded.
* pname:dst points to the target acceleration structure for the copy * pname:dst points to the target acceleration structure for the copy
* pname:src points to the source 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. specifies additional operations to perform during the copy.
.Valid Usage .Valid Usage
@ -616,7 +640,7 @@ include::../../validity/protos/vkCmdCopyAccelerationStructureNV.txt[]
[open,refpage='VkCopyAccelerationStructureModeNV',desc='Acceleration structure copy mode',type='enums'] [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: specifying additional operations to perform during the copy, are:
include::../../api/enums/VkCopyAccelerationStructureModeNV.txt[] 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. compact version of an acceleration structure pname:src into pname:dst.
The acceleration structure pname:dst must: have been created with a The acceleration structure pname:dst must: have been created with a
pname:compactedSize corresponding to the one returned by pname:compactedSize corresponding to the one returned by
slink:vkCmdWriteAccelerationStructurePropertiesNV after the build of the flink:vkCmdWriteAccelerationStructuresPropertiesNV after the build of
acceleration structure specified by pname:src. 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 structures that describe a range of mipmap levels, array layers, and
aspects to be cleared, as described in <<resources-image-views,Image aspects to be cleared, as described in <<resources-image-views,Image
Views>>. 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 Each specified range in pname:pRanges is cleared to the value specified by
pname:pColor. pname:pColor.
@ -79,6 +77,10 @@ ifdef::VK_KHR_shared_presentable_image[]
ename:VK_IMAGE_LAYOUT_GENERAL, or ename:VK_IMAGE_LAYOUT_GENERAL, or
ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
endif::VK_KHR_shared_presentable_image[] 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]] * [[VUID-vkCmdClearColorImage-baseMipLevel-01470]]
The slink:VkImageSubresourceRange::pname:baseMipLevel members of the The slink:VkImageSubresourceRange::pname:baseMipLevel members of the
elements of the pname:pRanges array must: each be less than 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 structures that describe a range of mipmap levels, array layers, and
aspects to be cleared, as described in <<resources-image-views,Image aspects to be cleared, as described in <<resources-image-views,Image
Views>>. 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 .Valid Usage
**** ****
@ -164,6 +162,16 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
pname:imageLayout must: be either of pname:imageLayout must: be either of
ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or
ename:VK_IMAGE_LAYOUT_GENERAL 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]] * [[VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474]]
The slink:VkImageSubresourceRange::pname:baseMipLevel members of the The slink:VkImageSubresourceRange::pname:baseMipLevel members of the
elements of the pname:pRanges array must: each be less than 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 * pname:pAttachments is a pointer to an array of slink:VkClearAttachment
structures defining the attachments to clear and the clear values to structures defining the attachments to clear and the clear values to
use. 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:rectCount is the number of entries in the pname:pRects array.
* pname:pRects points to an array of slink:VkClearRect structures defining * pname:pRects points to an array of slink:VkClearRect structures defining
regions within each selected attachment to clear. regions within each selected attachment to clear.
@ -236,11 +247,21 @@ attachments and the command parameters.
.Valid Usage .Valid Usage
**** ****
* [[VUID-vkCmdClearAttachments-aspectMask-00015]] * [[VUID-vkCmdClearAttachments-aspectMask-02501]]
If the pname:aspectMask member of any element of pname:pAttachments If the pname:aspectMask member of any element of pname:pAttachments
contains ename:VK_IMAGE_ASPECT_COLOR_BIT, the pname:colorAttachment contains ename:VK_IMAGE_ASPECT_COLOR_BIT, then the pname:colorAttachment
member of that element must: refer to a valid color attachment in the member of that element must: either refer to a color attachment which is
current subpass 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]] * [[VUID-vkCmdClearAttachments-pRects-00016]]
The rectangular region specified by each element of pname:pRects must: The rectangular region specified by each element of pname:pRects must:
be contained within the render area of the current render pass instance 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]] * [[VUID-vkCmdClearAttachments-layerCount-01934]]
The pname:layerCount member of each element of pname:pRects must: not be The pname:layerCount member of each element of pname:pRects must: not be
`0` `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[] ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-vkCmdClearAttachments-baseArrayLayer-00018]] * [[VUID-vkCmdClearAttachments-baseArrayLayer-00018]]
If the render pass instance this is recorded in uses multiview, then 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 * pname:aspectMask is a mask selecting the color, depth and/or stencil
aspects of the attachment to be cleared. 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 * pname:colorAttachment is only meaningful if
ename:VK_IMAGE_ASPECT_COLOR_BIT is set in pname:aspectMask, in which 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 case it is an index to the pname:pColorAttachments array in the
slink:VkSubpassDescription structure of the current subpass which slink:VkSubpassDescription structure of the current subpass which
selects the color attachment to clear. 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 * pname:clearValue is the color or depth/stencil value to clear the
attachment to, as described in <<clears-values,Clear Values>> below. 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[] endif::VK_EXT_image_drm_format_modifier[]
* [[VUID-VkClearAttachment-clearValue-00021]] * [[VUID-VkClearAttachment-clearValue-00021]]
pname:clearValue must: be a valid sname:VkClearValue union 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[] include::../validity/structs/VkClearAttachment.txt[]

View File

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

View File

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

View File

@ -474,8 +474,8 @@ endif::VK_KHR_push_descriptor[]
-- --
include::../api/flags/VkDescriptorSetLayoutCreateFlags.txt[] include::../api/flags/VkDescriptorSetLayoutCreateFlags.txt[]
sname:VkDescriptorSetLayoutCreateFlags is a bitmask type for setting a mask tname:VkDescriptorSetLayoutCreateFlags is a bitmask type for setting a mask
of zero or more slink:VkDescriptorSetLayoutCreateFlagBits. of zero or more elink:VkDescriptorSetLayoutCreateFlagBits.
-- --
[open,refpage='VkDescriptorSetLayoutBinding',desc='Structure specifying a descriptor set layout binding',type='structs'] [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[] ifdef::VK_EXT_inline_uniform_block[]
* [[VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingInlineUniformBlockUpdateAfterBind-02211]] * [[VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingInlineUniformBlockUpdateAfterBind-02211]]
If If
slink:VkPhysicalDeviceInlineUniformBlockFeatureEXT::pname:descriptorBindingInlineUniformBlockUpdateAfterBind slink:VkPhysicalDeviceInlineUniformBlockFeaturesEXT::pname:descriptorBindingInlineUniformBlockUpdateAfterBind
is not enabled, all bindings with descriptor type is not enabled, all bindings with descriptor type
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must: not use ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must: not use
ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT
@ -1564,7 +1564,7 @@ include::../validity/structs/VkPipelineLayoutCreateInfo.txt[]
-- --
include::../api/flags/VkPipelineLayoutCreateFlags.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. is currently reserved for future use.
-- --
@ -2007,8 +2007,8 @@ endif::VK_EXT_descriptor_indexing[]
-- --
include::../api/flags/VkDescriptorPoolCreateFlags.txt[] include::../api/flags/VkDescriptorPoolCreateFlags.txt[]
sname:VkDescriptorPoolCreateFlags is a bitmask type for setting a mask of tname:VkDescriptorPoolCreateFlags is a bitmask type for setting a mask of
zero or more slink:VkDescriptorPoolCreateFlagBits. zero or more elink:VkDescriptorPoolCreateFlagBits.
-- --
[open,refpage='VkDescriptorPoolSize',desc='Structure specifying descriptor pool size',type='structs'] [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[] 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. is currently reserved for future use.
-- --
@ -2527,10 +2527,10 @@ ifdef::VK_EXT_inline_uniform_block[]
.Note .Note
==== ====
The same behavior applies to bindings with a descriptor type of The same behavior applies to bindings with a descriptor type of
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK where pname:descriptorCount ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT where
specifies the number of bytes to update while pname:dstArrayElement pname:descriptorCount specifies the number of bytes to update while
specifies the starting byte offset, thus in this case if the pname:dstArrayElement specifies the starting byte offset, thus in this case
pname:dstBinding has a smaller byte size than the sum of if the pname:dstBinding has a smaller byte size than the sum of
pname:dstArrayElement and pname:descriptorCount, then the remainder will be pname:dstArrayElement and pname:descriptorCount, then the remainder will be
used to update the subsequent binding - [eq]#pname:dstBinding+1# starting at used to update the subsequent binding - [eq]#pname:dstBinding+1# starting at
offset zero. offset zero.
@ -3269,7 +3269,7 @@ or the equivalent
include::../api/flags/VkDescriptorUpdateTemplateCreateFlagsKHR.txt[] include::../api/flags/VkDescriptorUpdateTemplateCreateFlagsKHR.txt[]
endif::VK_KHR_descriptor_update_template[] 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. 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:. and pname:deviceNodeMask are undefined:.
If pname:deviceLUIDValid is ename:VK_TRUE and Vulkan is running on the 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 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 an code:LUID object and must: be equal to the locally unique identifier of a
a sname:IDXGIAdapter1 object that corresponds to pname:physicalDevice. code:IDXGIAdapter1 object that corresponds to pname:physicalDevice.
If pname:deviceLUIDValid is ename:VK_TRUE, pname:deviceNodeMask must: If pname:deviceLUIDValid is ename:VK_TRUE, pname:deviceNodeMask must:
contain exactly one bit. contain exactly one bit.
If Vulkan is running on an operating system that supports the Direct3D 12 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[] include::../api/flags/VkQueueFlags.txt[]
sname:VkQueueFlags is a bitmask type for setting a mask of zero or more tname:VkQueueFlags is a bitmask type for setting a mask of zero or more
slink:VkQueueFlagBits. elink:VkQueueFlagBits.
-- --
ifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 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[] ifdef::VK_VERSION_1_1[]
* [[VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840]] * [[VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840]]
pname:ppEnabledExtensionNames must: not contain pname:ppEnabledExtensionNames must: not contain
code:VK_AMD_negative_viewport_height `<<VK_AMD_negative_viewport_height>>`
endif::VK_VERSION_1_1[] endif::VK_VERSION_1_1[]
ifndef::VK_VERSION_1_1[] ifndef::VK_VERSION_1_1[]
ifdef::VK_KHR_maintenance1[] ifdef::VK_KHR_maintenance1[]
@ -977,7 +977,7 @@ include::../validity/structs/VkDeviceCreateInfo.txt[]
-- --
include::../api/flags/VkDeviceCreateFlags.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. currently reserved for future use.
-- --
@ -1413,8 +1413,8 @@ endif::VK_VERSION_1_1[]
-- --
include::../api/flags/VkDeviceQueueCreateFlags.txt[] include::../api/flags/VkDeviceQueueCreateFlags.txt[]
sname:VkDeviceQueueCreateFlags is a bitmask type for setting a mask of zero tname:VkDeviceQueueCreateFlags is a bitmask type for setting a mask of zero
or more slink:VkDeviceQueueCreateFlagBits. or more elink:VkDeviceQueueCreateFlagBits.
-- --
ifdef::VK_EXT_global_priority[] ifdef::VK_EXT_global_priority[]
@ -1584,7 +1584,7 @@ pname:pQueue will return dlink:VK_NULL_HANDLE.
sname:VkDeviceQueueCreateInfo structure sname:VkDeviceQueueCreateInfo structure
* [[VUID-VkDeviceQueueInfo2-queueIndex-01843]] * [[VUID-VkDeviceQueueInfo2-queueIndex-01843]]
pname:queueIndex must: be less than the number of queues created for the 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 pname:flags equal to this pname:flags value when pname:device was
created, via the pname:queueCount member of the created, via the pname:queueCount member of the
sname:VkDeviceQueueCreateInfo structure sname:VkDeviceQueueCreateInfo structure

View File

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

View File

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

View File

@ -333,7 +333,7 @@ endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* sname:VkDescriptorSet * sname:VkDescriptorSet
ifdef::VK_NVX_device_generated_commands[] ifdef::VK_NVX_device_generated_commands[]
* sname:VkObjectTableNVX * sname:VkObjectTableNVX
* sname:VkIndirectCommandsLayout * sname:VkIndirectCommandsLayoutNVX
endif::VK_NVX_device_generated_commands[] endif::VK_NVX_device_generated_commands[]
Destroying these objects will move any command buffers that are in the 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 Each value corresponds to a particular structure with a pname:sType member
with a matching name. 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, by taking the name of the structure, stripping the leading etext:Vk,
prefixing each capital letter with etext:_, converting the entire resulting prefixing each capital letter with etext:_, converting the entire resulting
string to upper case, and prefixing it with etext:VK_STRUCTURE_TYPE_. string to upper case, and prefixing it with etext:VK_STRUCTURE_TYPE_.
For example, structures of type sname:VkImageCreateInfo correspond to a 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. 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 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[] 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. 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 Geometry shaders that operate on points use an code:OpExecutionMode
instruction specifying the code:InputPoints input mode. instruction specifying the code:InputPoints input mode.
Such a shader is valid only when the pipeline primitive topology is 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 tessellation is in use and the tessellation evaluation shader uses
code:PointMode. code:PointMode.
There is only a single input vertex available for each geometry shader 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 Geometry shaders that operate on line segments are generated by including an
code:OpExecutionMode instruction with the code:InputLines mode. code:OpExecutionMode instruction with the code:InputLines mode.
Such a shader is valid only for the code:VK_PRIMITIVE_TOPOLOGY_LINE_LIST, Such a shader is valid only for the ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
and code:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP primitive topologies (if and ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP primitive topologies (if
tessellation is not in use) or if tessellation is in use and the tessellation is not in use) or if tessellation is in use and the
tessellation mode is code:Isolines. tessellation mode is code:Isolines.
There are two input vertices available for each geometry shader invocation. 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 generated by including an code:OpExecutionMode instruction with the
code:InputLinesAdjacency mode. code:InputLinesAdjacency mode.
Such a shader is valid only for the Such a shader is valid only for the
code:VK_PRIMITIVE_TOPOLOGY_LINES_WITH_ADJACENCY and ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY and
code:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY primitive topologies ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY primitive topologies
and must: not be used when tessellation is in use. and must: not be used when tessellation is in use.
+ +
In this mode, there are four vertices available for each geometry shader 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 Geometry shaders that operate on triangles are created by including an
code:OpExecutionMode instruction with the code:Triangles mode. code:OpExecutionMode instruction with the code:Triangles mode.
Such a shader is valid when the pipeline topology is Such a shader is valid when the pipeline topology is
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, or ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, or
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN (if tessellation is not in use) 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 when tessellation is in use and the tessellation mode is code:Triangles or
code:Quads. 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 created by including an code:OpExecutionMode instruction with the
code:InputTrianglesAdjacency mode. code:InputTrianglesAdjacency mode.
Such a shader is valid when the pipeline topology is Such a shader is valid when the pipeline topology is
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLES_WITH_ADJACENCY or ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, and must: not be ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, and must: not be
used when tessellation is in use. used when tessellation is in use.
+ +
In this mode, there are six vertices available for each geometry shader 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[] 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. 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 Variables identified with the code:Uniform storage class can: also be used
to access transparent descriptor set backed resources when the variable is to access transparent descriptor set backed resources when the variable is
assigned to a descriptor set layout binding with a pname:descriptorType of 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 In this case the variable must: be typed as code:OpTypeStruct and cannot: be
aggregated into arrays of that type. aggregated into arrays of that type.
Further, the code:Offset decoration for any member of such a variable must: 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 | inline uniform block | ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
endif::VK_EXT_inline_uniform_block[] endif::VK_EXT_inline_uniform_block[]
ifdef::VK_NV_ray_tracing[] 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[] endif::VK_NV_ray_tracing[]
|==== |====
@ -835,7 +835,7 @@ statically used.
A noteworthy example of using multiple statically-used shader variables A noteworthy example of using multiple statically-used shader variables
sharing the same descriptor set and binding values is a descriptor of type 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, corresponding shader variables in the code:UniformConstant storage class,
where some could be code:OpTypeImage, some could be code:OpTypeSampler where some could be code:OpTypeImage, some could be code:OpTypeSampler
(code:Sampled=1), and some could be code:OpTypeSampledImage. (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[] include::../api/flags/VkMemoryHeapFlags.txt[]
sname:VkMemoryHeapFlags is a bitmask type for setting a mask of zero or more tname:VkMemoryHeapFlags is a bitmask type for setting a mask of zero or more
slink:VkMemoryHeapFlagBits. elink:VkMemoryHeapFlagBits.
-- --
[open,refpage='VkMemoryType',desc='Structure specifying memory type',type='structs'] [open,refpage='VkMemoryType',desc='Structure specifying memory type',type='structs']
@ -795,8 +795,8 @@ endif::VK_VERSION_1_1[]
-- --
include::../api/flags/VkMemoryPropertyFlags.txt[] include::../api/flags/VkMemoryPropertyFlags.txt[]
sname:VkMemoryPropertyFlags is a bitmask type for setting a mask of zero or tname:VkMemoryPropertyFlags is a bitmask type for setting a mask of zero or
more slink:VkMemoryPropertyFlagBits. more elink:VkMemoryPropertyFlagBits.
-- --
[open,refpage='VkDeviceMemory',desc='Opaque handle to a device memory object',type='handles'] [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. basis.
Some platforms allow overallocation into other heaps. Some platforms allow overallocation into other heaps.
The overallocation behavior can: be specified through the 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[] endif::VK_AMD_memory_overallocation_behavior[]
@ -2283,8 +2283,8 @@ or the equivalent
include::../api/flags/VkMemoryAllocateFlagsKHR.txt[] include::../api/flags/VkMemoryAllocateFlagsKHR.txt[]
endif::VK_KHR_device_group[] endif::VK_KHR_device_group[]
sname:VkMemoryAllocateFlags is a bitmask type for setting a mask of zero or tname:VkMemoryAllocateFlags is a bitmask type for setting a mask of zero or
more slink:VkMemoryAllocateFlagBits. more elink:VkMemoryAllocateFlagBits.
-- --
endif::VK_VERSION_1_1,VK_KHR_device_group[] 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. ename:VK_ERROR_MEMORY_MAP_FAILED.
The application can: improve the likelihood of success by reducing the size The application can: improve the likelihood of success by reducing the size
of the mapped range and/or removing unneeded mappings using of the mapped range and/or removing unneeded mappings using
fname:VkUnmapMemory. flink:vkUnmapMemory.
==== ====
[[memory-device-hostaccess-hazards]] [[memory-device-hostaccess-hazards]]
@ -2448,7 +2448,7 @@ include::../validity/protos/vkMapMemory.txt[]
-- --
include::../api/flags/VkMemoryMapFlags.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. currently reserved for future use.
-- --
@ -2985,7 +2985,7 @@ ifdef::VK_KHR_image_format_list[]
[NOTE] [NOTE]
.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 buffer images, applications should: use slink:VkImageFormatListCreateInfoKHR
to inform the implementation which view formats will be used with the image. 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 For some common sets of format, this allows some implementations to provide
@ -3126,8 +3126,8 @@ or the equivalent
include::../api/flags/VkPeerMemoryFeatureFlagsKHR.txt[] include::../api/flags/VkPeerMemoryFeatureFlagsKHR.txt[]
endif::VK_KHR_device_group[] endif::VK_KHR_device_group[]
sname:VkPeerMemoryFeatureFlags is a bitmask type for setting a mask of zero tname:VkPeerMemoryFeatureFlags is a bitmask type for setting a mask of zero
or more slink:VkPeerMemoryFeatureFlagBits. or more elink:VkPeerMemoryFeatureFlagBits.
-- --
endif::VK_VERSION_1_1,VK_KHR_device_group[] 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[] 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. 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[] include::../api/flags/VkShaderStageFlags.txt[]
sname:VkShaderStageFlags is a bitmask type for setting a mask of zero or tname:VkShaderStageFlags is a bitmask type for setting a mask of zero or
more slink:VkShaderStageFlagBits. more elink:VkShaderStageFlagBits.
-- --
@ -624,7 +624,7 @@ ifdef::VK_NV_mesh_shader[]
ename:VK_SHADER_STAGE_VERTEX_BIT, ename:VK_SHADER_STAGE_VERTEX_BIT,
ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or
ename:VK_SHADER_STAGE_GEOEMETRY_BIT). ename:VK_SHADER_STAGE_GEOMETRY_BIT).
* [[VUID-VkGraphicsPipelineCreateInfo-stage-02096]] * [[VUID-VkGraphicsPipelineCreateInfo-stage-02096]]
The pname:stage member of one element of pname:pStages must: be either 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. ename:VK_SHADER_STAGE_VERTEX_BIT or ename:VK_SHADER_STAGE_MESH_BIT_NV.
@ -1036,8 +1036,8 @@ information.
-- --
include::../api/flags/VkPipelineCreateFlags.txt[] include::../api/flags/VkPipelineCreateFlags.txt[]
sname:VkPipelineCreateFlags is a bitmask type for setting a mask of zero or tname:VkPipelineCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkPipelineCreateFlagBits. more elink:VkPipelineCreateFlagBits.
-- --
[open,refpage='VkPipelineDynamicStateCreateInfo',desc='Structure specifying parameters of a newly created pipeline dynamic state',type='structs'] [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[] 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. mask, but is currently reserved for future use.
-- --
@ -1144,14 +1144,14 @@ include::../api/enums/VkDynamicState.txt[]
ifdef::VK_NV_clip_space_w_scaling[] ifdef::VK_NV_clip_space_w_scaling[]
* ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV specifies that the * ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV specifies that the
pname:pViewportScalings state in pname:pViewportScalings state in
sname:VkPipelineViewportWScalingStateCreateInfoNV will be ignored and slink:VkPipelineViewportWScalingStateCreateInfoNV will be ignored and
must: be set dynamically with flink:vkCmdSetViewportWScalingNV before must: be set dynamically with flink:vkCmdSetViewportWScalingNV before
any draws are performed with a pipeline state with any draws are performed with a pipeline state with
sname:VkPipelineViewportWScalingStateCreateInfo member slink:VkPipelineViewportWScalingStateCreateInfoNV member
pname:viewportScalingEnable set to ename:VK_TRUE pname:viewportScalingEnable set to ename:VK_TRUE
endif::VK_NV_clip_space_w_scaling[] endif::VK_NV_clip_space_w_scaling[]
ifdef::VK_EXT_discard_rectangles[] 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 pname:pDiscardRectangles state in
slink:VkPipelineDiscardRectangleStateCreateInfoEXT will be ignored and slink:VkPipelineDiscardRectangleStateCreateInfoEXT will be ignored and
must: be set dynamically with flink:vkCmdSetDiscardRectangleEXT before must: be set dynamically with flink:vkCmdSetDiscardRectangleEXT before
@ -1471,7 +1471,7 @@ include::../validity/structs/VkPipelineCacheCreateInfo.txt[]
-- --
include::../api/flags/VkPipelineCacheCreateFlags.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. is currently reserved for future use.
-- --

View File

@ -109,7 +109,7 @@ include::../validity/structs/VkPipelineRasterizationStateCreateInfo.txt[]
-- --
include::../api/flags/VkPipelineRasterizationStateCreateFlags.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. a mask, but is currently reserved for future use.
-- --
@ -168,7 +168,7 @@ include::../validity/structs/VkPipelineMultisampleStateCreateInfo.txt[]
-- --
include::../api/flags/VkPipelineMultisampleStateCreateFlags.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. mask, but is currently reserved for future use.
-- --
@ -314,7 +314,7 @@ include::../validity/structs/VkPipelineRasterizationStateStreamCreateInfoEXT.txt
-- --
include::../api/flags/VkPipelineRasterizationStateStreamCreateFlagsEXT.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. 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 been created with ename:VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV set
* [[VUID-vkCmdBindShadingRateImageNV-imageView-02062]] * [[VUID-vkCmdBindShadingRateImageNV-imageView-02062]]
If pname:imageView is not dlink:VK_NULL_HANDLE, pname:imageLayout must: 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. pname:imageView at the time the subresource is accessed.
* [[VUID-vkCmdBindShadingRateImageNV-imageLayout-02063]] * [[VUID-vkCmdBindShadingRateImageNV-imageLayout-02063]]
If pname:imageView is not dlink:VK_NULL_HANDLE, pname:imageLayout must: 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 a primitive covering the pixel with coordinates (_x_,_y_) will fetch a
shading rate index value from the shading rate image bound by shading rate index value from the shading rate image bound by
fname:vkCmdBindShadingRateImageNV. fname:vkCmdBindShadingRateImageNV.
If the shading rate image view has a type of ename:VK_IMAGE_VIEW_2D, the If the shading rate image view has a type of ename:VK_IMAGE_VIEW_TYPE_2D,
lookup will use texel coordinates (_u_,_v_) where latexmath:[u = \lfloor the lookup will use texel coordinates (_u_,_v_) where latexmath:[u = \lfloor
\frac{x}{twidth} \rfloor], latexmath:[v = \lfloor \frac{y}{theight} \frac{x}{twidth} \rfloor], latexmath:[v = \lfloor \frac{y}{theight}
\rfloor], and latexmath:[twidth] and latexmath:[theight] are the width and \rfloor], and latexmath:[twidth] and latexmath:[theight] are the width and
height of the implementation-dependent height of the implementation-dependent
<<features-limits-shading-rate-texel-size, shading rate texel size>>. <<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, If the shading rate image view has a type of
the lookup will use texel coordinates (_u_,_v_) to extract a texel from the ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY, the lookup will use texel coordinates
layer _l_, where _l_ is the layer of the framebuffer being rendered to. (_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, If _l_ is greater than or equal to the number of layers in the image view,
layer zero will be used. layer zero will be used.
@ -885,7 +886,7 @@ include::../api/structs/VkShadingRatePaletteNV.txt[]
* pname:shadingRatePaletteEntryCount specifies the number of entries in * pname:shadingRatePaletteEntryCount specifies the number of entries in
the shading rate image palette. the shading rate image palette.
* pname:pShadingRatePaletteEntries is a pointer to an array of * 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. each palette entry.
.Valid Usage .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 fragment generated using the indicated shading rate, as well as the maximum
number of fragment shader invocations launched for each fragment. number of fragment shader invocations launched for each fragment.
When processing regions of a primitive that have a shading rate of 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. generated in that region.
[options="header"] [options="header"]
@ -1155,7 +1156,7 @@ corresponds to the coverage sample numbered _i_ in the multi-pixel fragment.
* [[VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074]] * [[VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074]]
pname:sampleCount must: correspond to a sample count enumerated in pname:sampleCount must: correspond to a sample count enumerated in
elink:VkSampleCountFlags whose corresponding bit is set in elink:VkSampleCountFlags whose corresponding bit is set in
ename:VkPhysicalDeviceLimits::pname:framebufferNoAttachmentsSampleCounts. slink:VkPhysicalDeviceLimits::pname:framebufferNoAttachmentsSampleCounts.
* [[VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075]] * [[VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075]]
pname:sampleLocationCount must: be equal to the product of pname:sampleLocationCount must: be equal to the product of
pname:sampleCount, the fragment width for pname:shadingRate, and the 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 (even) | i | i+1 | i+2
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP (odd) | i | i+2 | i+1 | 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_TRIANGLE_FAN | i+1 | i+2 | 0
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_ADJACENCY | 4i+1 | 4i+2 | - | ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY | 4i+1 | 4i+2 | -
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_ADJACENCY | i+1 | i+2 | - | ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY | i+1 | i+2 | -
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLES_ADJACENCY | 6i | 6i+2 | 6i+4 | ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_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_WITH_ADJACENCY (even) | 2i | 2i+2 | 2i+4
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJACENCY (odd) | 2i | 2i+4 | 2i+2 | ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY (odd) | 2i | 2i+4 | 2i+2
|====== |======
When geometry When geometry
@ -1702,8 +1703,8 @@ been discarded.
-- --
include::../api/flags/VkCullModeFlags.txt[] include::../api/flags/VkCullModeFlags.txt[]
sname:VkCullModeFlags is a bitmask type for setting a mask of zero or more tname:VkCullModeFlags is a bitmask type for setting a mask of zero or more
slink:VkCullModeFlagBits. elink:VkCullModeFlagBits.
-- --
The rule for determining which fragments are produced by polygon The rule for determining which fragments are produced by polygon
@ -2070,7 +2071,7 @@ include::../validity/structs/VkPipelineRasterizationConservativeStateCreateInfoE
-- --
include::../api/flags/VkPipelineRasterizationConservativeStateCreateFlagsEXT.txt[] 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. 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[] 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. currently reserved for future use.
-- --
@ -466,8 +466,8 @@ include::../api/enums/VkQueryControlFlagBits.txt[]
-- --
include::../api/flags/VkQueryControlFlags.txt[] include::../api/flags/VkQueryControlFlags.txt[]
sname:VkQueryControlFlags is a bitmask type for setting a mask of zero or tname:VkQueryControlFlags is a bitmask type for setting a mask of zero or
more slink:VkQueryControlFlagBits. more elink:VkQueryControlFlagBits.
-- --
[open,refpage='vkCmdEndQuery',desc='Ends a query',type='protos'] [open,refpage='vkCmdEndQuery',desc='Ends a query',type='protos']
@ -772,8 +772,8 @@ include::../api/enums/VkQueryResultFlagBits.txt[]
-- --
include::../api/flags/VkQueryResultFlags.txt[] include::../api/flags/VkQueryResultFlags.txt[]
sname:VkQueryResultFlags is a bitmask type for setting a mask of zero or tname:VkQueryResultFlags is a bitmask type for setting a mask of zero or
more slink:VkQueryResultFlagBits. more elink:VkQueryResultFlagBits.
-- --
[open,refpage='vkCmdCopyQueryPoolResults',desc='Copy the results of queries in a query pool to a buffer object',type='protos'] [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[] include::../api/flags/VkQueryPipelineStatisticFlags.txt[]
sname:VkQueryPipelineStatisticFlags is a bitmask type for setting a mask of tname:VkQueryPipelineStatisticFlags is a bitmask type for setting a mask of
zero or more slink:VkQueryPipelineStatisticFlagBits. zero or more elink:VkQueryPipelineStatisticFlagBits.
-- --
@ -1241,7 +1241,7 @@ buffer.
A transform feedback query is begun and ended by calling A transform feedback query is begun and ended by calling
fname:vkCmdBeginQuery and fname:vkCmdEndQuery, respectively to query for fname:vkCmdBeginQuery and fname:vkCmdEndQuery, respectively to query for
vertex stream zero. 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 used to begin and end transform feedback queries for any supported vertex
stream. stream.
When a transform feedback query begins, the count of primitives written and 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[] 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. currently reserved for future use.
-- --
@ -629,8 +629,8 @@ include::../api/enums/VkAttachmentDescriptionFlagBits.txt[]
-- --
include::../api/flags/VkAttachmentDescriptionFlags.txt[] include::../api/flags/VkAttachmentDescriptionFlags.txt[]
sname:VkAttachmentDescriptionFlags is a bitmask type for setting a mask of tname:VkAttachmentDescriptionFlags is a bitmask type for setting a mask of
zero or more slink:VkAttachmentDescriptionFlagBits. 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'] [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[] include::../api/flags/VkSubpassDescriptionFlags.txt[]
sname:VkSubpassDescriptionFlags is a bitmask type for setting a mask of zero tname:VkSubpassDescriptionFlags is a bitmask type for setting a mask of zero
or more slink:VkSubpassDescriptionFlagBits. or more elink:VkSubpassDescriptionFlagBits.
-- --
[open,refpage='VkAttachmentReference',desc='Structure specifying an attachment reference',type='structs'] [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:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific 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. specifying additional properties of the attachment.
* pname:format is a elink:VkFormat value specifying the format of the * pname:format is a elink:VkFormat value specifying the format of the
image that will be used for the attachment. 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 slink:VkPipelineMultisampleStateCreateInfo to define the number of samples
used in rasterization; however, if used in rasterization; however, if
slink:VkPhysicalDeviceFeatures::pname:variableMultisampleRate is 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 subpass must: have the same value for
slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples. slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples.
@ -2139,7 +2139,7 @@ include::../validity/structs/VkFramebufferCreateInfo.txt[]
-- --
include::../api/flags/VkFramebufferCreateFlags.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. currently reserved for future use.
-- --

View File

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

View File

@ -252,7 +252,7 @@ include::../validity/structs/VkSamplerCreateInfo.txt[]
-- --
include::../api/flags/VkSamplerCreateFlags.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. currently reserved for future use.
-- --

View File

@ -153,7 +153,7 @@ include::../validity/structs/VkShaderModuleCreateInfo.txt[]
-- --
include::../api/flags/VkShaderModuleCreateFlags.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. currently reserved for future use.
-- --
@ -1060,7 +1060,7 @@ include::../validity/structs/VkValidationCacheCreateInfoEXT.txt[]
-- --
include::../api/flags/VkValidationCacheCreateFlagsEXT.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. but is currently reserved for future use.
-- --

View File

@ -820,8 +820,8 @@ include::../api/enums/VkSparseImageFormatFlagBits.txt[]
-- --
include::../api/flags/VkSparseImageFormatFlags.txt[] include::../api/flags/VkSparseImageFormatFlags.txt[]
sname:VkSparseImageFormatFlags is a bitmask type for setting a mask of zero tname:VkSparseImageFormatFlags is a bitmask type for setting a mask of zero
or more slink:VkSparseImageFormatFlagBits. or more elink:VkSparseImageFormatFlagBits.
-- --
[open,refpage='vkGetPhysicalDeviceSparseImageFormatProperties',desc='Retrieve properties of an image format applied to sparse images',type='protos'] [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[] include::../api/flags/VkSparseMemoryBindFlags.txt[]
sname:VkSparseMemoryBindFlags is a bitmask type for setting a mask of zero tname:VkSparseMemoryBindFlags is a bitmask type for setting a mask of zero
or more slink:VkSparseMemoryBindFlagBits. or more elink:VkSparseMemoryBindFlagBits.
-- --
[open,refpage='VkSparseBufferMemoryBindInfo',desc='Structure specifying a sparse buffer memory bind operation',type='structs'] [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[] include::../api/flags/VkPipelineStageFlags.txt[]
sname:VkPipelineStageFlags is a bitmask type for setting a mask of zero or tname:VkPipelineStageFlags is a bitmask type for setting a mask of zero or
more slink:VkPipelineStageFlagBits. more elink:VkPipelineStageFlagBits.
-- --
[[synchronization-pipeline-stages-masks]] [[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. some fixed-function stages of the pipeline.
The _access type_ is a function of the <<descriptorsets, descriptor type>> The _access type_ is a function of the <<descriptorsets, descriptor type>>
used, or how a fixed-function stage accesses memory. 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]] [[synchronization-access-masks]]
Some synchronization commands take sets of access types as parameters to 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 |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[] endif::VK_NV_mesh_shader[]
ifdef::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_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, 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_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, 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_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[] endif::VK_NV_mesh_shader[]
|ename:VK_ACCESS_INPUT_ATTACHMENT_READ_BIT | ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |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 |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[] include::../api/flags/VkAccessFlags.txt[]
sname:VkAccessFlags is a bitmask type for setting a mask of zero or more tname:VkAccessFlags is a bitmask type for setting a mask of zero or more
slink:VkAccessFlagBits. elink:VkAccessFlagBits.
-- --
@ -1225,8 +1225,8 @@ include::../api/enums/VkFenceCreateFlagBits.txt[]
-- --
include::../api/flags/VkFenceCreateFlags.txt[] include::../api/flags/VkFenceCreateFlags.txt[]
sname:VkFenceCreateFlags is a bitmask type for setting a mask of zero or tname:VkFenceCreateFlags is a bitmask type for setting a mask of zero or
more slink:VkFenceCreateFlagBits. more elink:VkFenceCreateFlagBits.
-- --
ifdef::VK_VERSION_1_1,VK_KHR_external_fence[] 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 For handle types defined as NT handles, the handles returned by
fname:vkGetFenceWin32HandleKHR are owned by the application. fname:vkGetFenceWin32HandleKHR are owned by the application.
To avoid leaking resources, the application must: release ownership of them 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 Exporting a Windows handle from a fence may: have side effects depending on
the transference of the specified handle type, as described in 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 implementations to modify an object's internal state, i.e. payload, without
internal synchronization. internal synchronization.
However, for fences sharing a payload across processes, satisfying the 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. fences in the set were the same object is sometimes infeasible.
Satisfying valid usage constraints on the state of a fence would similarly Satisfying valid usage constraints on the state of a fence would similarly
require impractical coordination or levels of trust between processes. 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 Importing a fence payload from Windows handles does not transfer ownership
of the handle to the Vulkan implementation. of the handle to the Vulkan implementation.
For handle types defined as NT handles, the application must: release 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. longer needed.
Applications can: import the same fence payload into multiple instances of Applications can: import the same fence payload into multiple instances of
@ -2077,8 +2077,8 @@ or the equivalent
include::../api/flags/VkFenceImportFlagsKHR.txt[] include::../api/flags/VkFenceImportFlagsKHR.txt[]
endif::VK_KHR_external_fence[] endif::VK_KHR_external_fence[]
sname:VkFenceImportFlags is a bitmask type for setting a mask of zero or tname:VkFenceImportFlags is a bitmask type for setting a mask of zero or
more slink:VkFenceImportFlagBits. more elink:VkFenceImportFlagBits.
-- --
endif::VK_KHR_external_fence_win32,VK_KHR_external_fence_fd[] 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[] 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. 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 For handle types defined as NT handles, the handles returned by
fname:vkGetSemaphoreWin32HandleKHR are owned by the application. fname:vkGetSemaphoreWin32HandleKHR are owned by the application.
To avoid leaking resources, the application must: release ownership of them 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 Exporting a Windows handle from a semaphore may: have side effects depending
on the transference of the specified handle type, as described in 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 implementations to modify an object's internal state, i.e. payload, without
internal synchronization. internal synchronization.
However, for semaphores sharing a payload across processes, satisfying the 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. all semaphores in the set were the same object is sometimes infeasible.
Satisfying the <<synchronization-semaphores-waiting-state,wait operation Satisfying the <<synchronization-semaphores-waiting-state,wait operation
state requirements>> would similarly require impractical coordination or 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 Importing a semaphore payload from Windows handles does not transfer
ownership of the handle to the Vulkan implementation. ownership of the handle to the Vulkan implementation.
For handle types defined as NT handles, the application must: release 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. longer needed.
Applications can: import the same semaphore payload into multiple instances Applications can: import the same semaphore payload into multiple instances
@ -2975,8 +2975,8 @@ or the equivalent
include::../api/flags/VkSemaphoreImportFlagsKHR.txt[] include::../api/flags/VkSemaphoreImportFlagsKHR.txt[]
endif::VK_KHR_external_semaphore[] endif::VK_KHR_external_semaphore[]
sname:VkSemaphoreImportFlags is a bitmask type for setting a mask of zero or tname:VkSemaphoreImportFlags is a bitmask type for setting a mask of zero or
more slink:VkSemaphoreImportFlagBits. more elink:VkSemaphoreImportFlagBits.
-- --
endif::VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_fd[] 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[] 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. currently reserved for future use.
-- --
@ -3719,8 +3719,8 @@ endif::VK_VERSION_1_1,VK_KHR_device_group[]
-- --
include::../api/flags/VkDependencyFlags.txt[] include::../api/flags/VkDependencyFlags.txt[]
sname:VkDependencyFlags is a bitmask type for setting a mask of zero or more tname:VkDependencyFlags is a bitmask type for setting a mask of zero or more
slink:VkDependencyFlagBits. elink:VkDependencyFlagBits.
-- --

View File

@ -519,7 +519,7 @@ include::../validity/structs/VkPipelineTessellationStateCreateInfo.txt[]
-- --
include::../api/flags/VkPipelineTessellationStateCreateFlags.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. mask, but is currently reserved for future use.
-- --

View File

@ -443,7 +443,7 @@ These cases include:
ifdef::VK_NV_corner_sampled_image[] ifdef::VK_NV_corner_sampled_image[]
* If the image was created with slink:VkImageCreateInfo::pname:flags * If the image was created with slink:VkImageCreateInfo::pname:flags
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, the sampler 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. ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
endif::VK_NV_corner_sampled_image[] endif::VK_NV_corner_sampled_image[]
ifdef::VK_NV_shader_image_footprint[] ifdef::VK_NV_shader_image_footprint[]
@ -2472,8 +2472,8 @@ to ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT, the above summation
is used. is used.
If the reduction mode is ename:VK_SAMPLER_REDUCTION_MODE_MIN_EXT or 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 ename:VK_SAMPLER_REDUCTION_MODE_MAX_EXT, then the value is instead computed
as [eq]#{tau}~2Daniso~ = reduce({tau}~1~, {ldots}, {tau}~N~)#, as [eq]#{tau}~2Daniso~ = reduce({tau}~1~, {ldots}, {tau}~N~)#, combining all
combining all texel values with non-zero weights. texel values with non-zero weights.
endif::VK_EXT_sampler_filter_minmax[] 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: 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 be accessed during texel filtering when using a pname:mipmapMode of
ename:VK_SAMPLER_MIPMAP_MODE_LINEAR. 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 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. mip level.
If texel filtering would access only a single mip level, the footprint in 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 that level would be returned when code:Coarse is set to code:false; an empty
empty footprint would be returned when code:Coarse is set to ename:true. footprint would be returned when code:Coarse is set to code:true.
The footprint for code:OpImageSampleFootprintNV is returned in a structure The footprint for code:OpImageSampleFootprintNV is returned in a structure
with six members: with six members:

View File

@ -389,7 +389,7 @@ include::../validity/structs/VkPipelineViewportSwizzleStateCreateInfoNV.txt[]
-- --
include::../api/flags/VkPipelineViewportSwizzleStateCreateFlagsNV.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. 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'] [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 and pname:w members, specifying swizzling of the corresponding components of
primitives, are: primitives, are:
@ -842,7 +842,7 @@ include::../validity/structs/VkPipelineViewportStateCreateInfo.txt[]
-- --
include::../api/flags/VkPipelineViewportStateCreateFlags.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. mask, but is currently reserved for future use.
-- --

View File

@ -16,10 +16,22 @@
# checkLinks.py - validate link/reference API constructs in files # 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 # Options:
# of the Vulkan API. # -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 import copy, os, pdb, re, string, sys
from vkapi import * from vkapi import *
@ -30,8 +42,6 @@ global errCount, warnCount, emittedPrefix, printInfo
curFile = '???' curFile = '???'
curLine = -1 curLine = -1
sectionDepth = 0 sectionDepth = 0
errCount = 0
warnCount = 0
emittedPrefix = {} emittedPrefix = {}
printInfo = False 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 # Report an error due to an asciidoc tag which doesn't match
# a corresponding API entity. # a corresponding API entity.
def foundError(errType, tag, value): def foundError(errType, tag, value, fatal):
global curFile, curLine global curFile, curLine
error('no such', errType, tag + ':' + value) error('no such', errType, tag + ':' + value)
# Try some heuristics to detect likely problems such as missing vk # 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 # Look in all the dictionaries in vkapi.py to see if the tag
# is just wrong but the API entity actually exists. # 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, enums, 'enums', 'elink')
checkTag(tag, value, structs, 'structs', 'slink/sname') checkTag(tag, value, structs, 'structs', 'slink/sname')
checkTag(tag, value, handles, 'handles', '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) # Look for missing vk prefixes (quirky since it's case-dependent)
# NOT DONE YET # 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 # Look for param in the list of all parameters of the specified functions
# Returns True if found, False otherwise # Returns True if found, False otherwise
def findParam(param, funclist): def findParam(param, funclist):
@ -149,18 +164,21 @@ def initChecks():
# Validate asciidoc internal links in specified file. # Validate asciidoc internal links in specified file.
# infile - filename to validate # infile - filename to validate
# follow - if True, recursively follow include:: directives # 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 # included - if True, function was called recursively
# fatalExit - if True, validation errors cause an error exit immediately
# Links checked are: # Links checked are:
# fname:vkBlah - Vulkan command name (generates internal link) # fname:vkBlah - Vulkan command name (generates internal link)
# flink:vkBlah - Vulkan command name # flink:vkBlah - Vulkan command name
# sname:VkBlah - Vulkan struct name (generates internal link) # sname:VkBlah - Vulkan struct name (generates internal link)
# slink:VkBlah - Vulkan struct name # 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 # ename:VK_BLAH - Vulkan enumerant token name
# pname:name - parameter name to a command or a struct member # pname:name - parameter name to a command or a struct member
# tlink:name - Other Vulkan type name (generates internal link) # tlink:name - Other Vulkan type name (generates internal link)
# tname:name - Other Vulkan type name # 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 curFile, curLine, curFuncs, curStruct, accumFunc, sectionDepth
global errCount, warnCount global errCount, warnCount
global incPat, linkPat, pathPat, sectionPat global incPat, linkPat, pathPat, sectionPat
@ -242,7 +260,7 @@ def checkLinks(infile, follow = False, included = False):
# Actually process the included file now, recursively # Actually process the included file now, recursively
newpath = os.path.normpath(os.path.join(inPath, incpath)) newpath = os.path.normpath(os.path.join(inPath, incpath))
info(curFile, ': including file:', newpath) info(curFile, ': including file:', newpath)
checkLinks(newpath, follow, included=True) checkLinks(newpath, follow, paramCheck, included = True, fatalExit = fatalExit)
matches = linkPat.findall(line) matches = linkPat.findall(line)
for match in matches: for match in matches:
@ -253,20 +271,25 @@ def checkLinks(infile, follow = False, included = False):
value = match[2] value = match[2]
if (tag == 'fname' or tag == 'flink'): if (tag == 'fname' or tag == 'flink'):
if (value not in protos.keys()): if (value not in protos.keys()):
foundError('function', tag, value) foundError('function', tag, value, False)
elif (tag == 'sname' or tag == 'slink'): elif (tag == 'sname' or tag == 'slink'):
if (value not in structs.keys() and if (value not in structs.keys() and
value not in handles.keys()): 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'): elif (tag == 'ename'):
if (value not in consts.keys() and value not in defines.keys()): 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'): elif (tag == 'elink'):
if (value not in enums.keys() and value not in flags.keys()): if (value not in enums.keys() and value not in flags.keys()):
foundError('enum/bitflag type', tag, value) foundError('enum/bitflag type', tag, value, fatalExit)
elif (tag == 'tlink' or tag == 'tname'): # tname and tlink are the same except if the errors are treated as fatal
if (value not in funcpointers.keys()): # They can be recombined once both are error-clean
foundError('function pointer/other type', tag, value) 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'): elif (tag == 'pname'):
# Any pname: tag means to stop accumulating /protos/ # Any pname: tag means to stop accumulating /protos/
accumFunc = False accumFunc = False
@ -277,6 +300,7 @@ def checkLinks(infile, follow = False, included = False):
elif (curFuncs and findParam(value, curFuncs)): elif (curFuncs and findParam(value, curFuncs)):
True True
else: else:
if paramCheck:
warning('parameter', value, 'not found. curStruct =', warning('parameter', value, 'not found. curStruct =',
curStruct, 'curFuncs =', curFuncs) curStruct, 'curFuncs =', curFuncs)
else: else:
@ -302,14 +326,38 @@ def checkLinks(infile, follow = False, included = False):
if __name__ == '__main__': if __name__ == '__main__':
follow = False follow = False
paramCheck = False
included = False
fatalExit = False
totalErrCount = 0
totalWarnCount = 0
if (len(sys.argv) > 1): if (len(sys.argv) > 1):
for file in sys.argv[1:]: for file in sys.argv[1:]:
if (file == '-follow'): if (file == '-follow'):
follow = True follow = True
elif (file == '-info'): elif (file == '-info'):
printInfo = True printInfo = True
elif file == '-paramcheck':
paramCheck = True
elif (file == '-fatal'):
fatalExit = True
else: else:
initChecks() initChecks()
checkLinks(file, follow) checkLinks(file,
follow,
paramCheck = paramCheck,
included = included,
fatalExit = fatalExit)
totalErrCount = totalErrCount + errCount
totalWarnCount = totalWarnCount + warnCount
else: 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') help='Generate internal build, not public')
parser.add_argument('-norefpages', action='store_true', parser.add_argument('-norefpages', action='store_true',
help='Do not generate refpages') 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', parser.add_argument('-pdf', action='store_true',
help='Always generate PDF outputs') help='Always generate PDF outputs')
parser.add_argument('-nov11', action='store_false', dest='v11', parser.add_argument('-nov11', action='store_false', dest='v11',
@ -68,6 +70,8 @@ if __name__ == '__main__':
# refPageTargets += ' manpdf' # refPageTargets += ' manpdf'
specTargets = ' html' specTargets = ' html'
if args.chunked:
specTargets += ' chunked'
if args.pdf: if args.pdf:
specTargets += ' pdf' specTargets += ' pdf'

View File

@ -317,22 +317,6 @@
id="path7064" id="path7064"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
</marker> </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 <marker
inkscape:stockid="Arrow1Mend" inkscape:stockid="Arrow1Mend"
orient="auto" orient="auto"
@ -626,18 +610,18 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="0.70710678" inkscape:zoom="1"
inkscape:cx="336.9947" inkscape:cx="275.51124"
inkscape:cy="227.64983" inkscape:cy="235.16674"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="true" showgrid="false"
inkscape:snap-center="true" inkscape:snap-center="true"
inkscape:snap-object-midpoints="true" inkscape:snap-object-midpoints="true"
inkscape:snap-text-baseline="true" inkscape:snap-text-baseline="true"
inkscape:window-width="1680" inkscape:window-width="1920"
inkscape:window-height="987" inkscape:window-height="1137"
inkscape:window-x="-8" inkscape:window-x="1912"
inkscape:window-y="-8" inkscape:window-y="-8"
inkscape:window-maximized="1" inkscape:window-maximized="1"
showguides="false" showguides="false"
@ -664,7 +648,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title> <dc:title />
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
@ -801,15 +785,10 @@
sodipodi:role="line">Rasterization</tspan></text> sodipodi:role="line">Rasterization</tspan></text>
<path <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)" 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" id="path4474"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" /> 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 <rect
style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 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" id="rect815-1-4-3-6-1"
@ -872,7 +851,7 @@
sodipodi:nodetypes="cc" /> sodipodi:nodetypes="cc" />
<path <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)" 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" id="path9856"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /> sodipodi:nodetypes="cc" />
@ -884,7 +863,7 @@
sodipodi:nodetypes="cccccc" /> sodipodi:nodetypes="cccccc" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 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" id="path11116"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" /> sodipodi:nodetypes="ccc" />
@ -908,7 +887,7 @@
sodipodi:nodetypes="cc" /> sodipodi:nodetypes="cc" />
<path <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)" 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" id="path15909"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" /> 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_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file // Version of this file
#define VK_HEADER_VERSION 91 #define VK_HEADER_VERSION 92
#define VK_NULL_HANDLE 0 #define VK_NULL_HANDLE 0
@ -1731,6 +1731,10 @@ typedef enum VkStencilFaceFlagBits {
} VkStencilFaceFlagBits; } VkStencilFaceFlagBits;
typedef VkFlags VkStencilFaceFlags; typedef VkFlags VkStencilFaceFlags;
typedef enum VkRenderPassCreateFlagBits {
VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkRenderPassCreateFlagBits;
typedef struct VkApplicationInfo { typedef struct VkApplicationInfo {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
@ -7791,8 +7795,6 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
#define VK_EXT_image_drm_format_modifier 1 #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_SPEC_VERSION 1
#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" #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 # See the License for the specific language governing permissions and
# limitations under the License. # 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. # extensions included.
# Usage: makeAll targets # Usage: makeAllExts targets
# Load extension list, generated from vk.xml # Load extension list, generated from vk.xml
make config/extDependency.sh || exit make config/extDependency.sh || exit

View File

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

View File

@ -439,6 +439,8 @@ table:
type. Example: elink{cl}VkResult -> elink:VkResult. type. Example: elink{cl}VkResult -> elink:VkResult.
| ename{cl} | Formats the macro argument as a Vulkan enumerant name. | ename{cl} | Formats the macro argument as a Vulkan enumerant name.
Example: ename{cl}VK_EVENT_SET -> ename:VK_EVENT_SET. 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. | etext{cl} | Formats the macro argument like ename{cl}. Not validated.
Examples: etext{cl}_RANGE_SIZE -> etext:_RANGE_SIZE, Examples: etext{cl}_RANGE_SIZE -> etext:_RANGE_SIZE,
etext{cl}VK_IMAGE_CREATE_SPARSE_* -> etext{cl}VK_IMAGE_CREATE_SPARSE_* ->
@ -456,10 +458,12 @@ table:
Only use this macro <<markup-macros-api-text, when Only use this macro <<markup-macros-api-text, when
necessary>>. necessary>>.
| tlink{cl} | Generates a cross-reference or link to the definition | tlink{cl} | Generates a cross-reference or link to the definition
of the Vulkan type in the macro argument. Example: of the Vulkan type in the macro argument.
tlink{cl}PFN_vkAllocationFunction -> Example: tlink{cl}PFN_vkAllocationFunction ->
tlink:PFN_vkAllocationFunction. This is only used for tlink:PFN_vkAllocationFunction.
function pointer types at present. 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 | tname{cl} | Formats the macro argument like tlink{cl}. Does not
generate a cross-reference. Example: generate a cross-reference. Example:
tname{cl}PFN_vkAllocationFunction -> tname{cl}PFN_vkAllocationFunction ->

View File

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

View File

@ -146,7 +146,7 @@ server.
<type category="define">// Vulkan 1.1 version number <type category="define">// Vulkan 1.1 version number
#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type> #define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
<type category="define">// Version of this file <type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 91</type> #define <name>VK_HEADER_VERSION</name> 92</type>
<type category="define"> <type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type> #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -7176,6 +7176,7 @@ server.
<type name="VkBaseOutStructure"/> <type name="VkBaseOutStructure"/>
<type name="VkBaseInStructure"/> <type name="VkBaseInStructure"/>
<type name="VkVendorId"/> <type name="VkVendorId"/>
<type name="VkRenderPassCreateFlagBits" comment="Workaround to get this included in the API even when it has no bits defined"/>
</require> </require>
</feature> </feature>
<feature api="vulkan" name="VK_VERSION_1_1" number="1.1" comment="Vulkan 1.1 core API interface definitions."> <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>
<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"> <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> <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="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"/> <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"/> <enum value="&quot;VK_NV_extension_245&quot;" name="VK_NV_EXTENSION_245_EXTENSION_NAME"/>
</require> </require>
</extension> </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> </extensions>
</registry> </registry>