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:
parent
93973bca3f
commit
279452463a
|
@ -9,8 +9,9 @@ spec-generate:
|
|||
- apt-get install -y -qq cmake bison flex libffi-dev libxml2-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev ttf-lyx
|
||||
- gem install asciidoctor asciidoctor-mathematical coderay json-schema
|
||||
script:
|
||||
- ./makeAllExts -j${nproc} -Otarget html styleguide registry manhtml manhtmlpages checkinc checklinks validusage
|
||||
- ./makeAllExts QUIET= -j${nproc} -Otarget html styleguide registry manhtml manhtmlpages checkinc checklinks validusage
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- include/
|
||||
- src/
|
||||
|
|
49
BUILD.adoc
49
BUILD.adoc
|
@ -58,6 +58,7 @@ targets, or they can individually be found as follows:
|
|||
Vulkan^(R)^ Specification::
|
||||
* `html` -- Single-file HTML5 in `$(OUTDIR)/html/vkspec.html`, and KaTeX
|
||||
dependency in $(OUTDIR)/katex
|
||||
* `chunked` -- Chunked HTML5 in `$(OUTDIR)/html/chap?.html`
|
||||
* `pdf` -- PDF in `$(OUTDIR)/pdf/vkspec.pdf`
|
||||
"`styleguide`" (Vulkan^(R)^ Documentation and Extensions: Procedures and Conventions)::
|
||||
* `styleguide` -- Single-file HTML5 in `$(OUTDIR)/styleguide.html`
|
||||
|
@ -456,6 +457,11 @@ parts you don't use) completely before trying to install.
|
|||
for `asciidoctor-mathematical`] (There are a lot of these!)
|
||||
* KaTeX distribution (version 0.7.0 from https://github.com/Khan/KaTeX.
|
||||
This is cached under `katex/`, and need not be installed from github.
|
||||
* If generating the chunked HTML target:
|
||||
** `asciidoctor-chunker` installed according to
|
||||
https://github.com/wshito/asciidoctor-chunker[the chunker README].
|
||||
** `Roswell` (version 18.10.10.95 from
|
||||
https://github.com/roswell/roswell/releases)
|
||||
|
||||
.Note
|
||||
[NOTE]
|
||||
|
@ -691,6 +697,10 @@ ruby environments>> such as `rbenv` or `rvm` might be preferable.
|
|||
Once the Ruby environment is set up, install the required
|
||||
<<depends-gems,Ruby Gems>>.
|
||||
|
||||
If you will need to generate the chunked HTML target, install the
|
||||
<<depends-chunker, Asciidoctor-chunker>> dependencies as described below.
|
||||
|
||||
|
||||
[[depends-osx]]
|
||||
=== Mac OS X
|
||||
|
||||
|
@ -742,6 +752,24 @@ gem update
|
|||
gem clean
|
||||
----
|
||||
|
||||
|
||||
[[depends-chunker]]
|
||||
=== Asciidoctor-chunker
|
||||
|
||||
To generate the `chunked` HTML target, you must install
|
||||
https://github.com/wshito/asciidoctor-chunker[`asciidoctor-chunker`] and
|
||||
the underlying https://github.com/roswell/roswell/releases[`Roswell`]
|
||||
compiler and related dependencies. These projects do not seem to support
|
||||
standard software repositories and packaging (e.g. RPM, .deb, etc.), so
|
||||
you will need to follow the
|
||||
https://github.com/wshito/asciidoctor-chunker[How to Install] directions
|
||||
for asciidoctor-chunker.
|
||||
|
||||
Note that both Roswell and asciidoctor-chunker are installed outside the
|
||||
scope of the Vulkan Specification repository (in system directories, and
|
||||
in your home directory, respectively).
|
||||
|
||||
|
||||
[[troubleshooting]]
|
||||
== Troubleshooting
|
||||
|
||||
|
@ -848,6 +876,27 @@ asciidoctor: ERROR: chapters/???.txt: line 189: include file not found: ???/Vulk
|
|||
you probably forgot to call `make clean_generated` as stated in the
|
||||
<<building-extensions>> chapter.
|
||||
|
||||
=== Asciidoctor-chunker memory exhaustion
|
||||
|
||||
If you get errors like:
|
||||
|
||||
----
|
||||
ASCIIDOCTOR-CHUNKER: Processing Chap 17 ....
|
||||
Heap exhausted during garbage collection: 224 bytes available, 288 requested.
|
||||
...
|
||||
GC control variables:
|
||||
*GC-INHIBIT* = true
|
||||
*GC-PENDING* = true
|
||||
*STOP-FOR-GC-PENDING* = false
|
||||
fatal error encountered in SBCL pid 31086(tid 0x7f4816866700):
|
||||
Heap exhausted, game over.
|
||||
----
|
||||
|
||||
try specifying a larger dynamic space size, something bigger than 2000:
|
||||
|
||||
----
|
||||
$ ROSWELLOPTS="dynamic-space-size=2500" ./makeAllExts html chunked
|
||||
----
|
||||
|
||||
[[ruby-env]]
|
||||
== Alternative Ruby environments
|
||||
|
|
34
Makefile
34
Makefile
|
@ -101,18 +101,21 @@ PDFMATHDIR:=$(OUTDIR)/equations_temp
|
|||
# Set VERBOSE to -v to see what asciidoc is doing.
|
||||
VERBOSE =
|
||||
|
||||
# asciidoc attributes to set.
|
||||
# PATCHVERSION must == VK_HEADER_VERSION from vk.xml / vulkan_core.h
|
||||
# asciidoc attributes to set (defaults are usually OK)
|
||||
# NOTEOPTS sets options controlling which NOTEs are generated
|
||||
# ATTRIBOPTS sets the api revision and enables MathJax generation
|
||||
# PATCHVERSION must equal VK_HEADER_VERSION from vk.xml
|
||||
# ATTRIBOPTS sets the api revision and enables KaTeX generation
|
||||
# VERSIONATTRIBS sets attributes for enabled API versions (set above
|
||||
# based on $(VERSIONS))
|
||||
# EXTATTRIBS sets attributes for enabled extensions (set above based on
|
||||
# $(EXTENSIONS))
|
||||
# EXTRAATTRIBS sets additional attributes, if passed to make
|
||||
# ADOCMISCOPTS miscellaneous options controlling error behavior, etc.
|
||||
# ADOCEXTS asciidoctor extensions to load
|
||||
# ADOCOPTS options for asciidoc->HTML5 output
|
||||
|
||||
NOTEOPTS = -a editing-notes -a implementation-guide
|
||||
PATCHVERSION = 91
|
||||
PATCHVERSION = 92
|
||||
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
|
||||
SPECREVISION = 1.1.$(PATCHVERSION)
|
||||
else
|
||||
|
@ -141,9 +144,9 @@ ATTRIBOPTS = -a revnumber="$(SPECREVISION)" \
|
|||
$(VERSIONATTRIBS) \
|
||||
$(EXTATTRIBS) \
|
||||
$(EXTRAATTRIBS)
|
||||
|
||||
ADOCMISCOPTS = --failure-level ERROR
|
||||
ADOCEXTS = -r $(CURDIR)/config/vulkan-macros.rb -r $(CURDIR)/config/tilde_open_block.rb
|
||||
ADOCOPTS = -d book $(ATTRIBOPTS) $(NOTEOPTS) $(VERBOSE) $(ADOCEXTS)
|
||||
ADOCOPTS = -d book $(ADOCMISCOPTS) $(ATTRIBOPTS) $(NOTEOPTS) $(VERBOSE) $(ADOCEXTS)
|
||||
|
||||
ADOCHTMLEXTS = -r $(CURDIR)/config/katex_replace.rb
|
||||
|
||||
|
@ -196,6 +199,14 @@ $(OUTDIR)/$(KATEXDIR)/README.md: katex/README.md
|
|||
# Spec targets
|
||||
# There is some complexity to try and avoid short virtual targets like 'html'
|
||||
# causing specs to *always* be regenerated.
|
||||
ROSWELL = ros
|
||||
ROSWELLOPTS ?= dynamic-space-size=4000
|
||||
CHUNKER = $(HOME)/common-lisp/asciidoctor-chunker/roswell/asciidoctor-chunker.ros
|
||||
|
||||
chunked: $(HTMLDIR)/vkspec.html $(SPECSRC) $(COMMONDOCS)
|
||||
$(QUIET)$(ROSWELL) $(ROSWELLOPTS) $(CHUNKER) \
|
||||
$(HTMLDIR)/vkspec.html -o $(HTMLDIR)
|
||||
|
||||
html: $(HTMLDIR)/vkspec.html $(SPECSRC) $(COMMONDOCS)
|
||||
|
||||
$(HTMLDIR)/vkspec.html: KATEXDIR = ../katex
|
||||
|
@ -366,6 +377,7 @@ endif
|
|||
manhtml: $(OUTDIR)/apispec.html
|
||||
|
||||
$(OUTDIR)/apispec.html: KATEXDIR = katex
|
||||
$(OUTDIR)/apispec.html: ADOCMISCOPTS =
|
||||
$(OUTDIR)/apispec.html: $(SPECVERSION) man/apispec.txt $(MANCOPYRIGHT) $(SVGFILES) $(GENINCLUDE) $(GENDEPENDS) katexinst
|
||||
$(QUIET)$(MKDIR) $(OUTDIR)
|
||||
$(QUIET)$(ASCIIDOC) -b html5 -a html_spec_relative='html/vkspec.html' $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ man/apispec.txt
|
||||
|
@ -409,11 +421,11 @@ checkinc:
|
|||
# Generates files in $(CHECKDIR):
|
||||
# specErrs.txt - errors & warnings in API spec
|
||||
# manErrs.txt - errors & warnings in man pages
|
||||
checklinks: vkapi.py
|
||||
checklinks: man/apispec.txt generated
|
||||
$(QUIET)if test ! -d $(CHECKDIR) ; then $(MKDIR) $(CHECKDIR) ; fi
|
||||
$(QUIET)echo "Generating link checks for spec (specErrs.txt) and man pages (manErrs.txt)"
|
||||
$(QUIET)$(PYTHON) checkLinks.py -follow man/[Vv][Kk]*.txt > $(CHECKDIR)/manErrs.txt
|
||||
$(QUIET)$(PYTHON) checkLinks.py -follow $(SPECFILES) > $(CHECKDIR)/specErrs.txt
|
||||
$(QUIET)$(PYTHON) checkLinks.py -follow man/[Vv][Kk]*.txt > $(CHECKDIR)/manErrs.txt
|
||||
|
||||
# Targets generated from the XML and registry processing scripts
|
||||
# vkapi.py - Python encoding of the registry
|
||||
|
@ -427,11 +439,15 @@ checklinks: vkapi.py
|
|||
#
|
||||
# $(EXTOPTIONS) specifies the extensions which are included in these
|
||||
# targets, and is set above based on $(EXTENSIONS).
|
||||
#
|
||||
# $(GENVKEXTRA) are extra options that can be passed to genvk.py, e.g.
|
||||
# '-diag diag'
|
||||
|
||||
REGISTRY = xml
|
||||
VKXML = $(REGISTRY)/vk.xml
|
||||
GENVK = $(REGISTRY)/genvk.py
|
||||
GENVKOPTS= $(VERSIONOPTIONS) $(EXTOPTIONS) -registry $(VKXML)
|
||||
GENVKOPTS = $(VERSIONOPTIONS) $(EXTOPTIONS) $(GENVKEXTRA) -registry $(VKXML)
|
||||
GENVKEXTRA =
|
||||
|
||||
vkapi.py: $(VKXML) $(GENVK)
|
||||
$(PYTHON) $(GENVK) $(GENVKOPTS) -o . vkapi.py
|
||||
|
|
|
@ -22,7 +22,7 @@ None.
|
|||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending ename:VkStructureType:
|
||||
* Extending elink:VkStructureType:
|
||||
** ename:VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
|
||||
|
||||
=== New Enums
|
||||
|
|
|
@ -18,7 +18,7 @@ None.
|
|||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending ename:VkStructureType:
|
||||
* Extending elink:VkStructureType:
|
||||
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
|
||||
|
||||
=== New Enums
|
||||
|
|
|
@ -34,7 +34,7 @@ None.
|
|||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending ename:VkStructureType:
|
||||
* Extending elink:VkStructureType:
|
||||
** ename:VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
|
||||
** ename:VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
|
||||
** ename:VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
|
||||
|
@ -42,7 +42,7 @@ None.
|
|||
** ename:VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
|
||||
** ename:VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
|
||||
|
||||
* Extending ename:VkExternalMemoryHandleTypeFlagBits:
|
||||
* Extending elink:VkExternalMemoryHandleTypeFlagBits:
|
||||
** ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
|
||||
|
||||
=== New Enums
|
||||
|
|
|
@ -26,11 +26,11 @@ intermediate decoding precision.
|
|||
|
||||
Three decoding options are provided:
|
||||
|
||||
* Decode to elink:VK_FORMAT_R16G16B16A16_SFLOAT precision: This is the
|
||||
* Decode to ename:VK_FORMAT_R16G16B16A16_SFLOAT precision: This is the
|
||||
default, and matches the required behavior in the core API.
|
||||
* Decode to elink:VK_FORMAT_R8G8B8A8_UNORM precision: This is provided as
|
||||
* Decode to ename:VK_FORMAT_R8G8B8A8_UNORM precision: This is provided as
|
||||
an option in LDR mode.
|
||||
* Decode to elink:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 precision: This is
|
||||
* Decode to ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 precision: This is
|
||||
provided as an option in both LDR and HDR mode.
|
||||
In this mode, negative values cannot be represented and are clamped to
|
||||
zero.
|
||||
|
|
|
@ -45,10 +45,10 @@ The main difference between this extension and `<<VK_EXT_debug_report>>` and
|
|||
`<<VK_EXT_debug_marker>>` is that those extensions use
|
||||
elink:VkDebugReportObjectTypeEXT to identify objects.
|
||||
This extension uses the core elink:VkObjectType in place of
|
||||
ename:VkDebugReportObjectTypeEXT.
|
||||
elink:VkDebugReportObjectTypeEXT.
|
||||
The primary reason for this move is that no future object type handle
|
||||
enumeration values will be added to ename:VkDebugReportObjectTypeEXT since
|
||||
the creation of ename:VkObjectType.
|
||||
enumeration values will be added to elink:VkDebugReportObjectTypeEXT since
|
||||
the creation of elink:VkObjectType.
|
||||
|
||||
In addition, this extension combines the functionality of both
|
||||
`<<VK_EXT_debug_report>>` and `<<VK_EXT_debug_marker>>` by allowing object
|
||||
|
|
|
@ -76,18 +76,18 @@ Many APIs in Linux use _modifiers_ to negotiate and specify the memory
|
|||
layout of shared images.
|
||||
For example, a Wayland compositor and Wayland client may, by relaying
|
||||
_modifiers_ over the Wayland protocol `zwp_linux_dmabuf_v1`, negotiate a
|
||||
vendor-specific tiling format for a shared stext:wl_buffer.
|
||||
The client may allocate the underlying memory for the stext:wl_buffer with
|
||||
GBM, providing the chosen _modifier_ to fname:gbm_bo_create_with_modifiers.
|
||||
The client may then import the stext:wl_buffer into Vulkan for producing
|
||||
vendor-specific tiling format for a shared code:wl_buffer.
|
||||
The client may allocate the underlying memory for the code:wl_buffer with
|
||||
GBM, providing the chosen _modifier_ to code:gbm_bo_create_with_modifiers.
|
||||
The client may then import the code:wl_buffer into Vulkan for producing
|
||||
image content, providing the resource's dma_buf to
|
||||
slink:VkImportMemoryFdInfo and its _modifier_ to
|
||||
slink:VkImportMemoryFdInfoKHR and its _modifier_ to
|
||||
slink:VkImageDrmFormatModifierExplicitCreateInfoEXT.
|
||||
The compositor may then import the stext:wl_buffer into OpenGL for sampling,
|
||||
providing the resource's dma_buf and _modifier_ to fname:eglCreateImage.
|
||||
The compositor may also bypass OpenGL and submit the stext:wl_buffer
|
||||
directly to the kernel's display API, providing the dma_buf and _modifier_
|
||||
through stext:drm_mode_fb_cmd2.
|
||||
The compositor may then import the code:wl_buffer into OpenGL for sampling,
|
||||
providing the resource's dma_buf and _modifier_ to code:eglCreateImage.
|
||||
The compositor may also bypass OpenGL and submit the code:wl_buffer directly
|
||||
to the kernel's display API, providing the dma_buf and _modifier_ through
|
||||
code:drm_mode_fb_cmd2.
|
||||
|
||||
==== Format Translation
|
||||
|
||||
|
@ -198,7 +198,7 @@ layout of each plane with flink:vkGetImageSubresourceLayout.
|
|||
The application then allocates the image's memory with
|
||||
slink:VkMemoryAllocateInfo, adding chained extension structures for external
|
||||
memory; binds it to the image; and exports the memory, for example, with
|
||||
flink:vkGetMemoryFd.
|
||||
flink:vkGetMemoryFdKHR.
|
||||
|
||||
Finally, the application sends the image's creation parameters, its
|
||||
_modifier_, its per-plane memory layout, and the exported memory handle to
|
||||
|
@ -211,14 +211,14 @@ consumers is outside the scope of this specification.
|
|||
|
||||
Extension
|
||||
`EGL_EXT_image_dma_buf_import`^<<VK_EXT_image_drm_format_modifier-fn1,1>>^
|
||||
introduced the ability to create an stext:EGLImage by importing for each
|
||||
introduced the ability to create an code:EGLImage by importing for each
|
||||
plane a dma_buf, offset, and row pitch.
|
||||
|
||||
Later, extension
|
||||
`EGL_EXT_image_dma_buf_import_modifiers`^<<VK_EXT_image_drm_format_modifier-fn2,2>>^
|
||||
introduced the ability to query which combination of formats and _modifiers_
|
||||
the implementation supports and to specify _modifiers_ during creation of
|
||||
the stext:EGLImage.
|
||||
the code:EGLImage.
|
||||
|
||||
Extension
|
||||
`EGL_MESA_image_dma_buf_export`^<<VK_EXT_image_drm_format_modifier-fn3,3>>^
|
||||
|
@ -252,7 +252,7 @@ None.
|
|||
** ename:VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
|
||||
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
|
||||
** ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
|
||||
** ename:VK_STRUCTURE_TYPE_IMAGE_EXPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT
|
||||
** ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
|
||||
** ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
|
||||
|
||||
* Extending elink:VkImageTiling:
|
||||
|
@ -270,7 +270,7 @@ None.
|
|||
|
||||
=== New Structures
|
||||
|
||||
* Extends elink:VkFormatProperties2:
|
||||
* Extends slink:VkFormatProperties2:
|
||||
** slink:VkDrmFormatModifierPropertiesListEXT
|
||||
|
||||
* Member of slink:VkDrmFormatModifierPropertiesListEXT:
|
||||
|
@ -342,8 +342,8 @@ the following ways:
|
|||
.Differences in Image Creation
|
||||
|
||||
- *Undedicated allocation by default.* When importing or exporting a set
|
||||
of dma_bufs as an stext:EGLImage or stext:gbm_bo, common practice
|
||||
mandates that each dma_buf's memory be dedicated (in the sense of
|
||||
of dma_bufs as an code:EGLImage or code:gbm_bo, common practice mandates
|
||||
that each dma_buf's memory be dedicated (in the sense of
|
||||
`VK_KHR_dedicated_allocation`) to the image (though not necessarily
|
||||
dedicated to a single plane).
|
||||
In particular, neither the GBM documentation nor the EGL extension
|
||||
|
@ -355,7 +355,7 @@ the following ways:
|
|||
created with ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT.
|
||||
|
||||
- *Separation of image creation and memory allocation.* When importing a
|
||||
set of dma_bufs as an stext:EGLImage or stext:gbm_bo, EGL and GBM create
|
||||
set of dma_bufs as an code:EGLImage or code:gbm_bo, EGL and GBM create
|
||||
the image resource and bind it to memory (the dma_bufs) simultaneously.
|
||||
This allows EGL and GBM to query each dma_buf's size during image
|
||||
creation.
|
||||
|
@ -397,7 +397,7 @@ image's size when its tiling uses a supported _modifier_.
|
|||
Suppose that the external image's size is smaller than the
|
||||
implementation-calculated size.
|
||||
If the application provided the external image's size to
|
||||
slink:vkCreateImage, the implementation would observe the mismatched size
|
||||
flink:vkCreateImage, the implementation would observe the mismatched size
|
||||
and recognize its inability to comprehend the external image's layout
|
||||
(unless the implementation used the application-provided size to select a
|
||||
refinement of the tiling layout indicated by the _modifier_, which is
|
||||
|
@ -405,7 +405,7 @@ strongly discouraged).
|
|||
The implementation would observe the conflict, and reject image creation
|
||||
with ename:VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT.
|
||||
On the other hand, if the application did not provide the external image's
|
||||
size to slink:vkCreateImage, then the application would observe after
|
||||
size to flink:vkCreateImage, then the application would observe after
|
||||
calling flink:vkGetImageMemoryRequirements that the external image's size is
|
||||
less than the size required by the implementation.
|
||||
The application would observe the conflict and refuse to bind the
|
||||
|
@ -415,7 +415,7 @@ In both cases, the result is explicit failure.
|
|||
Suppose that the external image's size is larger than the
|
||||
implementation-calculated size.
|
||||
If the application provided the external image's size to
|
||||
slink:vkCreateImage, for reasons similar to above the implementation would
|
||||
flink:vkCreateImage, for reasons similar to above the implementation would
|
||||
observe the mismatched size and recognize its inability to comprehend the
|
||||
image data residing in the extra size.
|
||||
The implementation, however, must assume that image data resides in the
|
||||
|
|
|
@ -100,7 +100,7 @@ application could use the following set of structures:
|
|||
* Revision 1, 2017-12-04 (Vikram Kushwaha)
|
||||
- First Version
|
||||
* Revision 2, 2018-07-16 (Jason Ekstrand)
|
||||
- Adjust the interaction between fname:divisor and pname:firstInstance
|
||||
- Adjust the interaction between pname:divisor and pname:firstInstance
|
||||
to match the OpenGL convention.
|
||||
- Disallow divisors of zero.
|
||||
* Revision 3, 2018-08-03 (Vikram Kushwaha)
|
||||
|
|
|
@ -28,11 +28,11 @@ None.
|
|||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending ename:VkStructureType:
|
||||
* Extending elink:VkStructureType:
|
||||
** ename:VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR
|
||||
** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR
|
||||
|
||||
* Extending ename:VkImageCreateFlagBits:
|
||||
* Extending elink:VkImageCreateFlagBits:
|
||||
** ename:VK_IMAGE_CREATE_ALIAS_BIT_KHR
|
||||
|
||||
=== New Enums
|
||||
|
|
|
@ -27,7 +27,7 @@ which describes the new descriptors.
|
|||
|
||||
=== New Object Types
|
||||
|
||||
* slink:VkDescriptorUpdateTemplateKHR
|
||||
* sname:VkDescriptorUpdateTemplateKHR
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
|
@ -37,7 +37,7 @@ Extending elink:VkStructureType:
|
|||
|
||||
=== New Enums
|
||||
|
||||
* elink:VkDescriptorUpdateTemplateCreateFlagsKHR
|
||||
* tlink:VkDescriptorUpdateTemplateCreateFlagsKHR
|
||||
* elink:VkDescriptorUpdateTemplateTypeKHR
|
||||
|
||||
=== New Structures
|
||||
|
|
|
@ -58,8 +58,8 @@ semaphores?
|
|||
Doing so would require extending the fence signal and wait operations to
|
||||
provide values to signal / wait for, like sname:VkD3D12FenceSubmitInfoKHR
|
||||
does.
|
||||
A D3D12 fence can be signaled by importing it into a elink:VkSemaphore
|
||||
instead of a elink:VkFence, and applications can check status or wait on the
|
||||
A D3D12 fence can be signaled by importing it into a slink:VkSemaphore
|
||||
instead of a slink:VkFence, and applications can check status or wait on the
|
||||
D3D12 fence using non-Vulkan APIs.
|
||||
The convenience of being able to do these operations on sname:VkFence
|
||||
objects doesn't justify the extra API complexity.
|
||||
|
|
|
@ -77,8 +77,6 @@ Other alternatives:
|
|||
extension.
|
||||
* flink:vkGetPhysicalDeviceWaylandPresentationSupportKHR: Not in this
|
||||
extension.
|
||||
* flink:vkGetPhysicalDeviceMirPresentationSupportKHR: Not in this
|
||||
extension.
|
||||
* flink:vkGetPhysicalDeviceWin32PresentationSupportKHR: Not in this
|
||||
extension.
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ include::meta/VK_KHR_incremental_present.txt[]
|
|||
- Jeff Juliano, NVIDIA
|
||||
- Jeff Bolz, NVIDIA
|
||||
|
||||
This device extension extends slink:vkQueuePresentKHR, from the
|
||||
This device extension extends flink:vkQueuePresentKHR, from the
|
||||
`<<VK_KHR_swapchain>>` extension, allowing an application to specify a list
|
||||
of rectangular, modified regions of each image to present.
|
||||
This should be used in situations where an application is only changing a
|
||||
|
|
|
@ -73,8 +73,8 @@ None.
|
|||
|
||||
=== New Enums
|
||||
|
||||
* slink:VkPointClippingBehaviorKHR
|
||||
* slink:VkTessellationDomainOriginKHR
|
||||
* elink:VkPointClippingBehaviorKHR
|
||||
* elink:VkTessellationDomainOriginKHR
|
||||
|
||||
=== New Structures
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ endif::VK_VERSION_1_1[]
|
|||
=== New Enums
|
||||
|
||||
ifdef::VK_VERSION_1_1[]
|
||||
* slink:VkDeviceGroupPresentModeFlagBitsKHR
|
||||
* elink:VkDeviceGroupPresentModeFlagBitsKHR
|
||||
* elink:VkSwapchainCreateFlagBitsKHR
|
||||
endif::VK_VERSION_1_1[]
|
||||
|
||||
|
@ -303,7 +303,7 @@ engine accepts images in.
|
|||
For example, a presentation engine that does not support transforming
|
||||
surfaces as part of presentation, and which is presenting to a surface that
|
||||
is displayed with a 90-degree rotation, would return only one supported
|
||||
transform bit: ename:VK_SURFACE_TRANSFORM_ROT90_BIT_KHR.
|
||||
transform bit: ename:VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR.
|
||||
Applications must transform their rendering by the transform they specify
|
||||
when creating the swapchain in pname:preTransform field.
|
||||
|
||||
|
@ -381,8 +381,8 @@ methods on some platforms, but some applications might rely on the content
|
|||
of presentable images to perform techniques such as partial updates or
|
||||
motion blurs.
|
||||
|
||||
23) What is the purpose of specifying a slink:VkColorSpaceKHR along with
|
||||
slink:VkFormat when creating a swapchain?
|
||||
23) What is the purpose of specifying a elink:VkColorSpaceKHR along with
|
||||
elink:VkFormat when creating a swapchain?
|
||||
|
||||
*RESOLVED*: While Vulkan itself is color space agnostic (e.g. even the
|
||||
meaning of R, G, B and A can be freely defined by the rendering
|
||||
|
@ -396,7 +396,7 @@ pairs.
|
|||
This set can be discovered via flink:vkGetPhysicalDeviceSurfaceFormatsKHR.
|
||||
As it can be expected that most display devices support the sRGB color
|
||||
space, at least one format/color-space pair has to be exposed, where the
|
||||
color space is ename:VK_COLOR_SPACE_SRGB_NONLINEAR.
|
||||
color space is ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR.
|
||||
|
||||
24) How are sRGB formats and the sRGB color space related?
|
||||
|
||||
|
@ -406,7 +406,8 @@ It merely means that the hardware can directly support applying the
|
|||
non-linear transfer functions defined by the sRGB standard color space when
|
||||
reading from or writing to images of that these formats.
|
||||
Still, it is unlikely that a swapchain will expose a etext:*_SRGB format
|
||||
along with any color space other than ename:VK_COLOR_SPACE_SRGB_NONLINEAR.
|
||||
along with any color space other than
|
||||
ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR.
|
||||
|
||||
On the other hand, non-etext:*_SRGB formats will be very likely exposed in
|
||||
pair with a SRGB color space.
|
||||
|
|
|
@ -43,7 +43,7 @@ The intended usage for this extension is for the application to:
|
|||
* create a slink:VkObjectTableNVX, and register the various Vulkan objects
|
||||
that are needed to evaluate the input parameters.
|
||||
* create a slink:VkIndirectCommandsLayoutNVX, which lists the
|
||||
slink:VkIndirectCommandsTokenTypeNVX it wants to dynamically change as
|
||||
elink:VkIndirectCommandsTokenTypeNVX it wants to dynamically change as
|
||||
atomic command sequence.
|
||||
This step likely involves some internal device code compilation, since
|
||||
the intent is for the GPU to generate the command buffer in the
|
||||
|
@ -227,7 +227,7 @@ easily.
|
|||
Same as secondary command buffer
|
||||
|
||||
12) Should sequenceOrdered be part of IndirectCommandsLayout or
|
||||
slink:vkCmdProcessCommandsNVX?
|
||||
flink:vkCmdProcessCommandsNVX?
|
||||
|
||||
Seems better for IndirectCommandsLayout, as that is when most heavy lifting
|
||||
in terms of internal device code generation is done.
|
||||
|
@ -244,7 +244,7 @@ b) flink:vkCmdProcessCommandsNVX makes use slink:VkCommandBufferBeginInfo
|
|||
|
||||
c) The pname:targetCommandbuffer must be inside the "`begin`" state already
|
||||
at the moment of being passed.
|
||||
This very likely suggests a new slink:VkCommandBufferUsageFlags
|
||||
This very likely suggests a new tlink:VkCommandBufferUsageFlags
|
||||
etext:VK_COMMAND_BUFFER_USAGE_DEVICE_GENERATED_BIT.
|
||||
|
||||
d) The pname:targetCommandbuffer must reserve space via a new function.
|
||||
|
|
|
@ -50,7 +50,7 @@ None.
|
|||
* Extending elink:VkStructureType:
|
||||
** ename:VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
|
||||
* Extending elink:VkDynamicState:
|
||||
** ename:VK_DYANMIC_STATE_VIEWPORT_W_SCALING_NV
|
||||
** ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV
|
||||
|
||||
=== New Enums
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ None.
|
|||
|
||||
=== New Structures
|
||||
|
||||
* elink:VkPhysicalDeviceCornerSampledImageFeaturesNV
|
||||
* slink:VkPhysicalDeviceCornerSampledImageFeaturesNV
|
||||
|
||||
=== New Functions
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ None.
|
|||
|
||||
=== New Enum Constants
|
||||
|
||||
Extending slink:VkStructureType:
|
||||
Extending elink:VkStructureType:
|
||||
|
||||
* ename:VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
|
||||
* ename:VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
|
||||
|
|
|
@ -39,7 +39,7 @@ None.
|
|||
=== New Structures
|
||||
|
||||
* slink:VkPhysicalDeviceExclusiveScissorFeaturesNV
|
||||
* slink:VkPipelineExclusiveScissorStateCreateInfoNV
|
||||
* slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV
|
||||
|
||||
=== New Functions
|
||||
|
||||
|
|
|
@ -159,7 +159,7 @@ natural place to access the shading rate image.
|
|||
pixel?
|
||||
|
||||
*RESOLVED* For single-pixel fragments, fragment shader inputs decorated with
|
||||
ename:Centroid are sampled at an implementation-dependent location in the
|
||||
code:Centroid are sampled at an implementation-dependent location in the
|
||||
intersection of the area of the primitive being rasterized and the area of
|
||||
the pixel that corresponds to the fragment.
|
||||
With multi-pixel fragments, we follow a similar pattern, using the
|
||||
|
|
|
@ -174,7 +174,7 @@ Color Renderable Format::
|
|||
* slink:VkImageFormatProperties::pname:linearTilingFeatures
|
||||
* slink:VkImageFormatProperties::pname:optimalTilingFeatures
|
||||
ifdef::VK_EXT_image_drm_format_modifier[]
|
||||
* slink:VkDrmFormatPropertiesEXT::pname:drmFormatModifierTilingFeatures
|
||||
* slink:VkDrmFormatModifierPropertiesEXT::pname:drmFormatModifierTilingFeatures
|
||||
endif::VK_EXT_image_drm_format_modifier[]
|
||||
|
||||
Color Sample Mask::
|
||||
|
@ -796,7 +796,7 @@ ifdef::VK_EXT_image_drm_format_modifier[]
|
|||
* a slink:VkImage created with
|
||||
ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose
|
||||
<<glossary-drm-format-modifier,Linux DRM format modifier>> is
|
||||
ename:DRM_FORMAT_MOD_LINEAR
|
||||
code:DRM_FORMAT_MOD_LINEAR
|
||||
endif::VK_EXT_image_drm_format_modifier[]
|
||||
+
|
||||
A resource is _non-linear_ if it is one of the following:
|
||||
|
@ -805,7 +805,7 @@ ifdef::VK_EXT_image_drm_format_modifier[]
|
|||
* a slink:VkImage created with
|
||||
ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose
|
||||
<<glossary-drm-format-modifier,Linux DRM format modifier>> is not
|
||||
ename:DRM_FORMAT_MOD_LINEAR
|
||||
code:DRM_FORMAT_MOD_LINEAR
|
||||
endif::VK_EXT_image_drm_format_modifier[]
|
||||
|
||||
ifdef::VK_EXT_image_drm_format_modifier[]
|
||||
|
|
|
@ -713,7 +713,7 @@ ifdef::VK_NV_ray_tracing[]
|
|||
* code:HitAttributeNV storage class must: only be used in intersection,
|
||||
any hit, or closest hit shaders.
|
||||
* code:CallableDataNV storage class must: only be used in ray generation,
|
||||
closest hit, mis, and callable shaders.
|
||||
closest hit, miss, and callable shaders.
|
||||
* code:IncomingCallableDataNV storage class must only be used in callable
|
||||
shaders.
|
||||
endif::VK_NV_ray_tracing[]
|
||||
|
|
|
@ -22,7 +22,7 @@ The command will write the 32-bit marker value into the buffer only after
|
|||
all preceding commands have finished executing up to at least the specified
|
||||
pipeline stage.
|
||||
This includes the completion of other preceding
|
||||
ename:vkCmdWriteBufferMarkerAMD commands so long as their specified pipeline
|
||||
fname:vkCmdWriteBufferMarkerAMD commands so long as their specified pipeline
|
||||
stages occur either at the same time or earlier than this command's
|
||||
specified pname:pipelineStage.
|
||||
|
||||
|
|
|
@ -114,8 +114,8 @@ include::../api/enums/VkDebugReportFlagBitsEXT.txt[]
|
|||
--
|
||||
include::../api/flags/VkDebugReportFlagsEXT.txt[]
|
||||
|
||||
sname:VkDebugReportFlagsEXT is a bitmask type for setting a mask of zero or
|
||||
more slink:VkDebugReportFlagBitsEXT.
|
||||
tname:VkDebugReportFlagsEXT is a bitmask type for setting a mask of zero or
|
||||
more elink:VkDebugReportFlagBitsEXT.
|
||||
--
|
||||
|
||||
[open,refpage='PFN_vkDebugReportCallbackEXT',desc='Application-defined debug report callback function',type='funcpointers']
|
||||
|
|
|
@ -473,11 +473,11 @@ include::../api/enums/VkDebugUtilsMessageSeverityFlagBitsEXT.txt[]
|
|||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
The values of ename:VkDebugUtilsMessageSeverityFlagBitsEXT are sorted based
|
||||
The values of elink:VkDebugUtilsMessageSeverityFlagBitsEXT are sorted based
|
||||
on severity.
|
||||
The higher the flag value, the more severe the message.
|
||||
This allows for simple boolean operation comparisons when looking at
|
||||
ename:VkDebugUtilsMessageSeverityFlagBitsEXT values.
|
||||
elink:VkDebugUtilsMessageSeverityFlagBitsEXT values.
|
||||
|
||||
For example:
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ include::../../api/enums/VkSurfaceCounterFlagBitsEXT.txt[]
|
|||
--
|
||||
include::../../api/flags/VkSurfaceCounterFlagsEXT.txt[]
|
||||
|
||||
sname:VkSurfaceCounterFlagsEXT is a bitmask type for setting a mask of zero
|
||||
or more slink:VkSurfaceCounterFlagBitsEXT.
|
||||
tname:VkSurfaceCounterFlagsEXT is a bitmask type for setting a mask of zero
|
||||
or more elink:VkSurfaceCounterFlagBitsEXT.
|
||||
--
|
||||
|
||||
|
|
|
@ -194,7 +194,7 @@ include::../../api/structs/VkPastPresentationTimingGOOGLE.txt[]
|
|||
The results for a given pname:swapchain and pname:presentID are only
|
||||
returned once from fname:vkGetPastPresentationTimingGOOGLE.
|
||||
|
||||
The application can: use the fname:VkPastPresentationTimingGOOGLE values to
|
||||
The application can: use the sname:VkPastPresentationTimingGOOGLE values to
|
||||
occasionally adjust its timing.
|
||||
For example, if pname:actualPresentTime is later than expected (e.g. one
|
||||
pname:refreshDuration late), the application may increase its target IPD to
|
||||
|
|
|
@ -86,10 +86,9 @@ For devices which have no natural value to return here, implementations
|
|||
should: return the maximum resolution supported.
|
||||
====
|
||||
|
||||
* pname:supportedTransforms tells which transforms are supported by this
|
||||
display.
|
||||
This will contain one or more of the bits from
|
||||
sname:VkSurfaceTransformFlagsKHR.
|
||||
* pname:supportedTransforms is a bitmask of
|
||||
elink:VkSurfaceTransformFlagBitsKHR describing which transforms are
|
||||
supported by this display.
|
||||
* pname:planeReorderPossible tells whether the planes on this display can:
|
||||
have their z order changed.
|
||||
If this is ename:VK_TRUE, the application can: re-arrange the planes on
|
||||
|
@ -756,6 +755,6 @@ include::../../api/enums/VkDisplayPlaneAlphaFlagBitsKHR.txt[]
|
|||
--
|
||||
include::../../api/flags/VkDisplayPlaneAlphaFlagsKHR.txt[]
|
||||
|
||||
sname:VkDisplayPlaneAlphaFlagsKHR is a bitmask type for setting a mask of
|
||||
zero or more slink:VkDisplayPlaneAlphaFlagBitsKHR.
|
||||
tname:VkDisplayPlaneAlphaFlagsKHR is a bitmask type for setting a mask of
|
||||
zero or more elink:VkDisplayPlaneAlphaFlagBitsKHR.
|
||||
--
|
||||
|
|
|
@ -23,8 +23,8 @@ include::../../api/protos/vkCreateSharedSwapchainsKHR.txt[]
|
|||
* pname:pSwapchains is a pointer to an array of slink:VkSwapchainKHR
|
||||
handles in which the created swapchain objects will be returned.
|
||||
|
||||
fname:vkCreateSharedSwapchains is similar to flink:vkCreateSwapchainKHR,
|
||||
except that it takes an array of sname:VkSwapchainCreateInfoKHR structures,
|
||||
fname:vkCreateSharedSwapchainsKHR is similar to flink:vkCreateSwapchainKHR,
|
||||
except that it takes an array of slink:VkSwapchainCreateInfoKHR structures,
|
||||
and returns an array of swapchain objects.
|
||||
|
||||
The swapchain creation parameters that affect the properties and number of
|
||||
|
|
|
@ -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.
|
|
@ -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[]
|
||||
--
|
|
@ -510,8 +510,8 @@ include::../../api/enums/VkSurfaceTransformFlagBitsKHR.txt[]
|
|||
--
|
||||
include::../../api/flags/VkSurfaceTransformFlagsKHR.txt[]
|
||||
|
||||
sname:VkSurfaceTransformFlagsKHR is a bitmask type for setting a mask of
|
||||
zero or more slink:VkSurfaceTransformFlagBitsKHR.
|
||||
tname:VkSurfaceTransformFlagsKHR is a bitmask type for setting a mask of
|
||||
zero or more elink:VkSurfaceTransformFlagBitsKHR.
|
||||
--
|
||||
|
||||
|
||||
|
@ -552,8 +552,8 @@ These values are described as follows:
|
|||
--
|
||||
include::../../api/flags/VkCompositeAlphaFlagsKHR.txt[]
|
||||
|
||||
sname:VkCompositeAlphaFlagsKHR is a bitmask type for setting a mask of zero
|
||||
or more slink:VkCompositeAlphaFlagBitsKHR.
|
||||
tname:VkCompositeAlphaFlagsKHR is a bitmask type for setting a mask of zero
|
||||
or more elink:VkCompositeAlphaFlagBitsKHR.
|
||||
--
|
||||
|
||||
[open,refpage='vkGetPhysicalDeviceSurfaceFormatsKHR',desc='Query color formats supported by surface',type='protos']
|
||||
|
@ -1165,8 +1165,8 @@ include::../../api/enums/VkDeviceGroupPresentModeFlagBitsKHR.txt[]
|
|||
--
|
||||
include::../../api/flags/VkDeviceGroupPresentModeFlagsKHR.txt[]
|
||||
|
||||
sname:VkDeviceGroupPresentModeFlagsKHR is a bitmask type for setting a mask
|
||||
of zero or more slink:VkDeviceGroupPresentModeFlagBitsKHR.
|
||||
tname:VkDeviceGroupPresentModeFlagsKHR is a bitmask type for setting a mask
|
||||
of zero or more elink:VkDeviceGroupPresentModeFlagBitsKHR.
|
||||
--
|
||||
|
||||
[open,refpage='vkGetDeviceGroupSurfacePresentModesKHR',desc='Query present capabilities for a surface',type='protos']
|
||||
|
@ -1183,7 +1183,7 @@ include::../../api/protos/vkGetDeviceGroupSurfacePresentModesKHR.txt[]
|
|||
* pname:device is the logical device.
|
||||
* pname:surface is the surface.
|
||||
* pname:pModes is a pointer to a value of type
|
||||
sname:VkDeviceGroupPresentModeFlagsKHR that is filled with the supported
|
||||
tlink:VkDeviceGroupPresentModeFlagsKHR that is filled with the supported
|
||||
device group present modes for the surface.
|
||||
|
||||
The modes returned by this command are not invariant, and may: change in
|
||||
|
|
|
@ -121,7 +121,7 @@ include::../../api/structs/VkSwapchainCreateInfoKHR.txt[]
|
|||
many images, or it will fail to create the swapchain.
|
||||
* pname:imageFormat is a elink:VkFormat value specifying the format the
|
||||
swapchain image(s) will be created with.
|
||||
* pname:imageColorSpace is a slink:VkColorSpaceKHR value specifying the
|
||||
* pname:imageColorSpace is a elink:VkColorSpaceKHR value specifying the
|
||||
way the swapchain interprets image data.
|
||||
* pname:imageExtent is the size (in pixels) of the swapchain image(s).
|
||||
The behavior is platform-dependent if the image extent does not match
|
||||
|
@ -210,15 +210,15 @@ associated with pname:oldSwapchain.
|
|||
.Note
|
||||
====
|
||||
Multiple retired swapchains can: be associated with the same
|
||||
sname:VkSurfaceKHR through multiple uses of sname:oldSwapchain that
|
||||
sname:VkSurfaceKHR through multiple uses of pname:oldSwapchain that
|
||||
outnumber calls to flink:vkDestroySwapchainKHR.
|
||||
|
||||
After sname:oldSwapchain is retired, the application can: pass to
|
||||
After pname:oldSwapchain is retired, the application can: pass to
|
||||
flink:vkQueuePresentKHR any images it had already acquired from
|
||||
sname:oldSwapchain.
|
||||
pname:oldSwapchain.
|
||||
E.g., an application may present an image from the old swapchain before an
|
||||
image from the new swapchain is ready to be presented.
|
||||
As usual, flink:vkQueuePresentKHR may: fail if sname:oldSwapchain has
|
||||
As usual, flink:vkQueuePresentKHR may: fail if pname:oldSwapchain has
|
||||
entered a state that causes ename:VK_ERROR_OUT_OF_DATE_KHR to be returned.
|
||||
|
||||
ifdef::VK_KHR_shared_presentable_image[]
|
||||
|
@ -377,8 +377,8 @@ endif::VK_VERSION_1_1[]
|
|||
--
|
||||
include::../../api/flags/VkSwapchainCreateFlagsKHR.txt[]
|
||||
|
||||
sname:VkSwapchainCreateFlagsKHR is a bitmask type for setting a mask of zero
|
||||
or more slink:VkSwapchainCreateFlagBitsKHR.
|
||||
tname:VkSwapchainCreateFlagsKHR is a bitmask type for setting a mask of zero
|
||||
or more elink:VkSwapchainCreateFlagBitsKHR.
|
||||
--
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_device_group[]
|
||||
|
@ -581,7 +581,7 @@ its main rendering loop.
|
|||
====
|
||||
|
||||
The implementation will have already allocated and bound the memory backing
|
||||
the sname:VkImages returned by fname:vkGetSwapchainImagesKHR.
|
||||
the sname:VkImage objects returned by fname:vkGetSwapchainImagesKHR.
|
||||
The memory for each image will not alias with the memory for other images or
|
||||
with any sname:VkDeviceMemory object.
|
||||
As such, performing any operation affecting the binding of memory to a
|
||||
|
@ -651,7 +651,7 @@ include::../../api/protos/vkAcquireNextImageKHR.txt[]
|
|||
of slink:VkSurfaceCapabilitiesKHR::pname:minImageCount as returned by a
|
||||
call to flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR with the
|
||||
pname:surface used to create pname:swapchain, pname:timeout must: not be
|
||||
ename:UINT64_MAX
|
||||
code:UINT64_MAX
|
||||
****
|
||||
|
||||
include::../../validity/protos/vkAcquireNextImageKHR.txt[]
|
||||
|
@ -673,7 +673,7 @@ ename:VK_NOT_READY if no image is available.
|
|||
|
||||
If the specified timeout period expires before an image is acquired,
|
||||
fname:vkAcquireNextImageKHR returns ename:VK_TIMEOUT.
|
||||
If pname:timeout is ename:UINT64_MAX, the timeout period is treated as
|
||||
If pname:timeout is code:UINT64_MAX, the timeout period is treated as
|
||||
infinite, and fname:vkAcquireNextImageKHR will block until an image is
|
||||
acquired or an error occurs.
|
||||
|
||||
|
@ -682,12 +682,12 @@ application has currently acquired (but not yet presented) is less than or
|
|||
equal to the difference between the number of images in pname:swapchain and
|
||||
the value of slink:VkSurfaceCapabilitiesKHR::pname:minImageCount.
|
||||
If the number of currently acquired images is greater than this,
|
||||
fname:vkAcquireNextImage should: not be called; if it is, pname:timeout
|
||||
must: not be ename:UINT64_MAX.
|
||||
fname:vkAcquireNextImageKHR should: not be called; if it is, pname:timeout
|
||||
must: not be code:UINT64_MAX.
|
||||
|
||||
If an image is acquired successfully, fname:vkAcquireNextImage must: either
|
||||
return ename:VK_SUCCESS, or ename:VK_SUBOPTIMAL_KHR if the swapchain no
|
||||
longer matches the surface properties exactly, but can: still be used for
|
||||
If an image is acquired successfully, fname:vkAcquireNextImageKHR must:
|
||||
either return ename:VK_SUCCESS, or ename:VK_SUBOPTIMAL_KHR if the swapchain
|
||||
no longer matches the surface properties exactly, but can: still be used for
|
||||
presentation.
|
||||
|
||||
[NOTE]
|
||||
|
@ -784,7 +784,7 @@ pname:timeout provided:
|
|||
* ename:VK_NOT_READY is returned if pname:timeout is zero and no image was
|
||||
available.
|
||||
* ename:VK_TIMEOUT is returned if pname:timeout is greater than zero and
|
||||
less than `UINT64_MAX`, and no image became available within the time
|
||||
less than code:UINT64_MAX, and no image became available within the time
|
||||
allowed.
|
||||
* ename:VK_SUBOPTIMAL_KHR is returned if an image became available, and
|
||||
the swapchain no longer matches the surface properties exactly, but can:
|
||||
|
@ -854,7 +854,7 @@ include::../../api/protos/vkAcquireNextImage2KHR.txt[]
|
|||
slink:VkSurfaceCapabilitiesKHR::pname:minImageCount as returned by a
|
||||
call to flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR with the
|
||||
pname:surface used to create pname:swapchain, the pname:timeout member
|
||||
of pname:pAcquireInfo must: not be ename:UINT64_MAX
|
||||
of pname:pAcquireInfo must: not be code:UINT64_MAX
|
||||
****
|
||||
|
||||
include::../../validity/protos/vkAcquireNextImage2KHR.txt[]
|
||||
|
|
|
@ -11,8 +11,8 @@ include::../../api/protos/vkCmdReserveSpaceForCommandsNVX.txt[]
|
|||
* pname:commandBuffer is the secondary command buffer in which the space
|
||||
for device-generated commands is reserved.
|
||||
* pname:pProcessCommandsInfo is a pointer to an instance of the
|
||||
slink:vkCmdReserveSpaceForCommandsNVX structure containing parameters
|
||||
affecting the reservation of command buffer space.
|
||||
slink:VkCmdReserveSpaceForCommandsInfoNVX structure containing
|
||||
parameters affecting the reservation of command buffer space.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
|
@ -105,8 +105,8 @@ include::../../api/structs/VkCmdProcessCommandsInfoNVX.txt[]
|
|||
pname:sequencesCountBuffer where the count value is stored.
|
||||
* pname:sequencesIndexBuffer must: be set if
|
||||
pname:indirectCommandsLayout's
|
||||
ename:VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT is set and
|
||||
provides the used sequence indices as ftext:uint32_t array.
|
||||
ename:VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX is set
|
||||
and provides the used sequence indices as ftext:uint32_t array.
|
||||
Otherwise it must: be dlink:VK_NULL_HANDLE.
|
||||
* pname:sequencesIndexOffset is the byte offset into
|
||||
pname:sequencesIndexBuffer where the index values start.
|
||||
|
|
|
@ -38,7 +38,7 @@ void cmdProcessAllSequences(cmd, objectTable, indirectCommandsLayout, pIndirectC
|
|||
The processing of each sequence is considered stateless, therefore all state
|
||||
changes must: occur prior work provoking commands within the sequence.
|
||||
A single sequence is either strictly targeting
|
||||
sname:VK_PIPELINE_BIND_POINT_GRAPHICS or
|
||||
ename:VK_PIPELINE_BIND_POINT_GRAPHICS or
|
||||
ename:VK_PIPELINE_BIND_POINT_COMPUTE.
|
||||
|
||||
The primary input data for each token is provided through sname:VkBuffer
|
||||
|
@ -253,7 +253,7 @@ include::../../api/structs/VkIndirectCommandsLayoutCreateInfoNVX.txt[]
|
|||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:pipelineBindPoint is the slink:VkPipelineBindPoint that this
|
||||
* pname:pipelineBindPoint is the elink:VkPipelineBindPoint that this
|
||||
layout targets.
|
||||
* pname:flags is a bitmask of
|
||||
elink:VkIndirectCommandsLayoutUsageFlagBitsNVX specifying usage hints of
|
||||
|
@ -343,8 +343,8 @@ include::../../api/enums/VkIndirectCommandsLayoutUsageFlagBitsNVX.txt[]
|
|||
--
|
||||
include::../../api/flags/VkIndirectCommandsLayoutUsageFlagsNVX.txt[]
|
||||
|
||||
sname:VkIndirectCommandsLayoutUsageFlagsNVX is a bitmask type for setting a
|
||||
mask of zero or more slink:VkIndirectCommandsLayoutUsageFlagBitsNVX.
|
||||
tname:VkIndirectCommandsLayoutUsageFlagsNVX is a bitmask type for setting a
|
||||
mask of zero or more elink:VkIndirectCommandsLayoutUsageFlagBitsNVX.
|
||||
--
|
||||
|
||||
[open,refpage='vkDestroyIndirectCommandsLayoutNVX',desc='Destroy an object table',type='protos']
|
||||
|
|
|
@ -156,8 +156,8 @@ include::../../api/enums/VkObjectEntryUsageFlagBitsNVX.txt[]
|
|||
--
|
||||
include::../../api/flags/VkObjectEntryUsageFlagsNVX.txt[]
|
||||
|
||||
sname:VkObjectEntryUsageFlagsNVX is a bitmask type for setting a mask of
|
||||
zero or more slink:VkObjectEntryUsageFlagBitsNVX.
|
||||
tname:VkObjectEntryUsageFlagsNVX is a bitmask type for setting a mask of
|
||||
zero or more elink:VkObjectEntryUsageFlagBitsNVX.
|
||||
--
|
||||
|
||||
[open,refpage='vkDestroyObjectTableNVX',desc='Destroy an object table',type='protos']
|
||||
|
@ -238,7 +238,7 @@ Common to all resource entries are:
|
|||
include::../../api/structs/VkObjectTableEntryNVX.txt[]
|
||||
|
||||
* pname:type defines the entry type
|
||||
* pname:flags defines which slink:VkPipelineBindPoint the resource can be
|
||||
* pname:flags defines which elink:VkPipelineBindPoint the resource can be
|
||||
used with.
|
||||
Some entry types allow only a single flag to be set.
|
||||
|
||||
|
@ -312,7 +312,7 @@ include::../../api/structs/VkObjectTableIndexBufferEntryNVX.txt[]
|
|||
|
||||
* pname:buffer specifies the slink:VkBuffer that can be bound as index
|
||||
buffer
|
||||
* pname:indexType specifies the slink:VkIndexType used with this index
|
||||
* pname:indexType specifies the elink:VkIndexType used with this index
|
||||
buffer
|
||||
|
||||
.Valid Usage
|
||||
|
@ -331,7 +331,7 @@ include::../../api/structs/VkObjectTablePushConstantEntryNVX.txt[]
|
|||
|
||||
* pname:pipelineLayout specifies the slink:VkPipelineLayout that the
|
||||
pushconstants are used with
|
||||
* pname:stageFlags specifies the slink:VkShaderStageFlags that the
|
||||
* pname:stageFlags specifies the tlink:VkShaderStageFlags that the
|
||||
pushconstants are used with
|
||||
|
||||
.Valid Usage
|
||||
|
@ -355,7 +355,7 @@ include::../../api/protos/vkUnregisterObjectsNVX.txt[]
|
|||
unregistered.
|
||||
* pname:objectCount is the number of resources being removed from the
|
||||
object table.
|
||||
* pname:pObjectEntryType provides an array of slink:VkObjectEntryTypeNVX
|
||||
* pname:pObjectEntryType provides an array of elink:VkObjectEntryTypeNVX
|
||||
for the resources being removed.
|
||||
* pname:pObjectIndices provides the array of object indices to be removed.
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Each diagnostic checkpoint command is executed at two pipeline stages:
|
|||
ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, and
|
||||
ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT.
|
||||
If the device is lost, the application can: call
|
||||
slink:vkGetQueueCheckpointDataNV to retrieve checkpoint data associated with
|
||||
flink:vkGetQueueCheckpointDataNV to retrieve checkpoint data associated with
|
||||
both pipeline stages, indicating the range of diagnostic checkpoints that
|
||||
are currently in the execution pipeline on the device.
|
||||
|
||||
|
@ -18,7 +18,7 @@ are currently in the execution pipeline on the device.
|
|||
--
|
||||
|
||||
Device diagnostic checkpoints are inserted into the command stream by
|
||||
calling slink:vkCmdSetCheckpointNV.
|
||||
calling flink:vkCmdSetCheckpointNV.
|
||||
|
||||
include::../../api/protos/vkCmdSetCheckpointNV.txt[]
|
||||
|
||||
|
@ -40,12 +40,12 @@ If the device encounters an error during execution, the implementation will
|
|||
return a ename:VK_ERROR_DEVICE_LOST error to the application at a certain
|
||||
point during host execution.
|
||||
When this happens, the application can: call
|
||||
slink:vkGetQueueCheckpointDataNV to retrieve information on the most recent
|
||||
flink:vkGetQueueCheckpointDataNV to retrieve information on the most recent
|
||||
diagnostic checkpoints that were executed by the device.
|
||||
|
||||
include::../../api/protos/vkGetQueueCheckpointDataNV.txt[]
|
||||
|
||||
* pname:queue is the elink:VkQueue object the caller would like to
|
||||
* pname:queue is the slink:VkQueue object the caller would like to
|
||||
retrieve checkpoint data for
|
||||
* pname:pCheckpointDataCount is a pointer to an integer related to the
|
||||
number of checkpoint markers available or queried, as described below.
|
||||
|
@ -89,6 +89,6 @@ include::../../validity/structs/VkCheckpointDataNV.txt[]
|
|||
|
||||
Note that the stages at which a checkpoint marker can: be executed are
|
||||
implementation-defined and can: be queried by calling
|
||||
slink:vkGetPhysicalDeviceQueueFamilyProperties2.
|
||||
flink:vkGetPhysicalDeviceQueueFamilyProperties2.
|
||||
|
||||
--
|
||||
|
|
|
@ -19,7 +19,7 @@ include::../../api/protos/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.txt
|
|||
* pname:flags is a bitmask describing additional parameters of the image,
|
||||
corresponding to slink:VkImageCreateInfo::pname:flags.
|
||||
* pname:externalHandleType is either one of the bits from
|
||||
slink:VkExternalMemoryHandleTypeFlagBitsNV, or 0.
|
||||
elink:VkExternalMemoryHandleTypeFlagBitsNV, or 0.
|
||||
* pname:pExternalImageFormatProperties points to an instance of the
|
||||
slink:VkExternalImageFormatPropertiesNV structure in which capabilities
|
||||
are returned.
|
||||
|
@ -72,7 +72,7 @@ include::../../validity/structs/VkExternalImageFormatPropertiesNV.txt[]
|
|||
--
|
||||
|
||||
Bits which can: be set in
|
||||
slink:VkExternalMemoryFeatureFlagBitsNV::pname:externalMemoryFeatures,
|
||||
slink:VkExternalImageFormatPropertiesNV::pname:externalMemoryFeatures,
|
||||
indicating properties of the external memory handle type, are:
|
||||
|
||||
include::../../api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[]
|
||||
|
@ -91,6 +91,6 @@ include::../../api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[]
|
|||
--
|
||||
include::../../api/flags/VkExternalMemoryFeatureFlagsNV.txt[]
|
||||
|
||||
sname:VkExternalMemoryFeatureFlagsNV is a bitmask type for setting a mask of
|
||||
zero or more slink:VkExternalMemoryFeatureFlagBitsNV.
|
||||
tname:VkExternalMemoryFeatureFlagsNV is a bitmask type for setting a mask of
|
||||
zero or more elink:VkExternalMemoryFeatureFlagBitsNV.
|
||||
--
|
||||
|
|
|
@ -70,7 +70,7 @@ endif::editing-notes[]
|
|||
--
|
||||
include::../../api/flags/VkExternalMemoryHandleTypeFlagsNV.txt[]
|
||||
|
||||
sname:VkExternalMemoryHandleTypeFlagsNV is a bitmask type for setting a mask
|
||||
of zero or more slink:VkExternalMemoryHandleTypeFlagBitsNV.
|
||||
tname:VkExternalMemoryHandleTypeFlagsNV is a bitmask type for setting a mask
|
||||
of zero or more elink:VkExternalMemoryHandleTypeFlagBitsNV.
|
||||
--
|
||||
|
||||
|
|
|
@ -173,7 +173,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
|
||||
|
@ -386,7 +386,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
|
|
@ -67,16 +67,16 @@ include::../../api/structs/VkAccelerationStructureCreateInfoNV.txt[]
|
|||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:compactedSize is the size from the result of
|
||||
flink:vkCmdWriteAccelerationStructurePropertiesNV, if this acceleration
|
||||
flink:vkCmdWriteAccelerationStructuresPropertiesNV, if this acceleration
|
||||
structure is going to be the target of a compacting copy.
|
||||
* pname:info contains the elink:VkAccelerationStructureInfoNV information
|
||||
* pname:info contains the slink:VkAccelerationStructureInfoNV information
|
||||
for the acceleration structure's parameters
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421]]
|
||||
If pname:compactedSize is not `0` then both
|
||||
sname:info::pname:geometryCount and sname:info::pname:instanceCount
|
||||
pname:info::pname:geometryCount and pname:info::pname:instanceCount
|
||||
must: be `0`
|
||||
****
|
||||
|
||||
|
@ -92,18 +92,18 @@ include::../../api/structs/VkAccelerationStructureInfoNV.txt[]
|
|||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:type is a ename:VkAccelerationStructureTypeBitsNV value that
|
||||
specifies the type of acceleration structure that will be created.
|
||||
* pname:flags is a set of ename:VkBuildAccelerationStructureFlagBitsNV
|
||||
values that specify additional parameters of the acceleration structure.
|
||||
* pname:type is a elink:VkAccelerationStructureMemoryRequirementsTypeNV
|
||||
value specifying the type of acceleration structure that will be
|
||||
created.
|
||||
* pname:flags is a bitmask of elink:VkBuildAccelerationStructureFlagBitsNV
|
||||
specifying additional parameters of the acceleration structure.
|
||||
* pname:instanceCount specifies the number of instances that will be in
|
||||
the new acceleration structure
|
||||
* pname:geometryCount specifies the number of geometries that will be in
|
||||
the new acceleration structure
|
||||
* pname:pGeometries is an array of ename:VkGeometryNV structures which
|
||||
* pname:pGeometries is an array of slink:VkGeometryNV structures which
|
||||
contain the scene data being passed into the acceleration structure.
|
||||
|
||||
|
||||
sname:VkAccelerationStructureInfoNV contains information that's used both
|
||||
for acceleration structure creation with
|
||||
fname:vkCreateAccelerationStructureNV and in combination with the actual
|
||||
|
@ -137,6 +137,7 @@ fname:vkCmdBuildAccelerationStructureNV.
|
|||
include::../../validity/structs/VkAccelerationStructureInfoNV.txt[]
|
||||
|
||||
--
|
||||
|
||||
[open,refpage='VkBuildAccelerationStructureFlagBitsNV',desc='Bitmask specifying additional parameters for acceleration structure builds',type='enums']
|
||||
--
|
||||
|
||||
|
@ -152,7 +153,7 @@ include::../../api/enums/VkBuildAccelerationStructureFlagBitsNV.txt[]
|
|||
update with a source that also had this flag set.
|
||||
* ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV indicates
|
||||
that the specified acceleration structure may: act as the source for
|
||||
flink:vkCmdCopyAccelerationStructureNN with pname:mode of
|
||||
flink:vkCmdCopyAccelerationStructureNV with pname:mode of
|
||||
ename:VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV to produce a
|
||||
compacted acceleration structure.
|
||||
* ename:VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV indicates
|
||||
|
@ -178,10 +179,8 @@ ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV may: take more
|
|||
time and memory than a normal build, so should only be used when those
|
||||
features are used.
|
||||
====
|
||||
|
||||
--
|
||||
|
||||
|
||||
[open,refpage='VkGeometryNV',desc='Structure specifying a geometry in a bottom-level acceleration structure',type='structs']
|
||||
--
|
||||
|
||||
|
@ -222,7 +221,7 @@ additional parameters for acceleration structure builds, are:
|
|||
include::../../api/enums/VkGeometryFlagBitsNV.txt[]
|
||||
|
||||
* ename:VK_GEOMETRY_OPAQUE_BIT_NV indicates that this geometry does not
|
||||
use any hit shaders.
|
||||
invoke any-hit shaders even if present in a hit group.
|
||||
* ename:VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV indicates that
|
||||
the implementation must: only call any hit a single time for each
|
||||
primitive in this geometry.
|
||||
|
@ -231,7 +230,6 @@ include::../../api/enums/VkGeometryFlagBitsNV.txt[]
|
|||
|
||||
--
|
||||
|
||||
|
||||
[open,refpage='VkGeometryDataNV',desc='Structure specifying geometry in a bottom-level acceleration structure',type='structs']
|
||||
--
|
||||
|
||||
|
@ -341,12 +339,11 @@ include::../../api/structs/VkGeometryAABBNV.txt[]
|
|||
****
|
||||
|
||||
The AABB data in memory is 6 32-bit floats consisting of the minimum x, y,
|
||||
and z values followed by the maximum x, y, and x values.
|
||||
and z values followed by the maximum x, y, and z values.
|
||||
|
||||
include::../../validity/structs/VkGeometryAABBNV.txt[]
|
||||
--
|
||||
|
||||
|
||||
[open,refpage='vkDestroyAccelerationStructureNV',desc='Destroy an acceleration structure object',type='protos']
|
||||
--
|
||||
|
||||
|
@ -440,7 +437,6 @@ include::../../api/enums/VkAccelerationStructureMemoryRequirementsTypeNV.txt[]
|
|||
|
||||
--
|
||||
|
||||
|
||||
[open,refpage='vkBindAccelerationStructureMemoryNV',desc='Bind acceleration structure memory',type='protos']
|
||||
--
|
||||
|
||||
|
@ -537,7 +533,6 @@ include::../../api/structs/VkBindAccelerationStructureMemoryInfoNV.txt[]
|
|||
include::../../validity/structs/VkBindAccelerationStructureMemoryInfoNV.txt[]
|
||||
--
|
||||
|
||||
|
||||
[open,refpage='vkGetAccelerationStructureHandleNV',desc='Get opaque acceleration structure handle',type='protos']
|
||||
--
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ image::images/raypipe.svg[align="center",title="Ray tracing Pipeline",opts="{ima
|
|||
Interaction between the different shader stages in the ray tracing pipeline
|
||||
****
|
||||
|
||||
|
||||
[[raytracing-commands]]
|
||||
== Ray Tracing Commands
|
||||
_Ray tracing commands_ provoke work in the raytacing pipeline.
|
||||
|
@ -29,11 +30,11 @@ tracing commands are recorded in that command buffer.
|
|||
|
||||
Each ray tracing call operates on a set of shader stages that are specific
|
||||
to the ray tracing pipeline as well as a set of
|
||||
sname:VkAccelerationStructure objects which describe the scene geometry in
|
||||
sname:VkAccelerationStructureNV objects which describe the scene geometry in
|
||||
an implementation-specific way.
|
||||
The relationship between the ray tracing pipeline object and the
|
||||
acceleration structures is passed into the raytacing command in a
|
||||
sname:VkBuffer object known as a _shader binding table_.
|
||||
slink:VkBuffer object known as a _shader binding table_.
|
||||
|
||||
During execution, control alternates between scheduling and other
|
||||
operations.
|
||||
|
@ -245,7 +246,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -253,6 +254,7 @@ endif::VK_NV_corner_sampled_image[]
|
|||
include::../../validity/protos/vkCmdTraceRaysNV.txt[]
|
||||
--
|
||||
|
||||
|
||||
[[shader-binding-table]]
|
||||
== Shader Binding Table
|
||||
|
||||
|
@ -264,7 +266,7 @@ structure.
|
|||
In addition, it contains the resources accessed by each shader, including
|
||||
indices of textures and constants.
|
||||
The application allocates and manages _shader binding tables_ as
|
||||
elink:VkBuffer objects.
|
||||
slink:VkBuffer objects.
|
||||
|
||||
Each entry in the shader binding table consists of pname:shaderHeaderSize
|
||||
bytes of data as queried by vkGetRayTracingShaderHandlesNV to refer to the
|
||||
|
@ -277,6 +279,7 @@ fname:vkCmdTraceRaysNV.
|
|||
Shader binding tables are read-only in shaders that are executing on the ray
|
||||
tracing pipeline.
|
||||
|
||||
|
||||
[[shader-binding-table-indexing-rules]]
|
||||
=== Indexing Rules
|
||||
|
||||
|
@ -290,13 +293,17 @@ The application must: organize the contents of the shader binding table's
|
|||
memory in a way that application of the indexing rules will lead to correct
|
||||
records.
|
||||
|
||||
|
||||
==== Ray Generation Shaders
|
||||
|
||||
Only one ray generation shader is executed per ray tracing dispatch.
|
||||
Its location is passed into fname:vkCmdTraceRaysNV using the
|
||||
pname:raygenShaderBindingTableBuffer and
|
||||
pname:raygenShaderBindingTableOffset parameters - there is no indexing.
|
||||
|
||||
|
||||
==== Hit Shaders
|
||||
|
||||
The base for the computation of intersection, any hit and closest hit shader
|
||||
locations is the pname:instanceShaderBindingTableRecordOffset value stored
|
||||
with each instance of a top-level acceleration structure.
|
||||
|
@ -308,7 +315,7 @@ In the following rule, _geometryIndex_ refers to the location of the
|
|||
geometry within the instance.
|
||||
|
||||
The pname:sbtRecordStride and pname:sbtRecordOffset values are passed in as
|
||||
parameters to fname:traceNV() calls made in the shaders.
|
||||
parameters to code:traceNV() calls made in the shaders.
|
||||
See Section 8.19 (Ray Tracing Functions) of the OpenGL Shading Language
|
||||
Specification for more details.
|
||||
|
||||
|
@ -322,7 +329,9 @@ The complete rule to compute a hit shader binding table record index is:
|
|||
hitProgramShaderBindingTableBaseIndex {plus} geometryIndex {times}
|
||||
sbtRecordStride {plus} sbtRecordOffset#
|
||||
|
||||
|
||||
==== Miss Shaders
|
||||
|
||||
A Miss shader is executed whenever a ray query fails to find an intersection
|
||||
for the given scene geometry.
|
||||
Multiple miss shaders can be executed throughout a ray tracing dispatch.
|
||||
|
@ -331,8 +340,8 @@ The base for the computation of miss shader locations is
|
|||
pname:missProgramShaderBindingTableBaseIndex, a base index passed into
|
||||
fname:vkCmdTraceRaysNV.
|
||||
|
||||
The pname:sbtRecordOffset value is passed in as parameters to
|
||||
fname:traceNV() calls made in the shaders.
|
||||
The pname:sbtRecordOffset value is passed in as parameters to code:traceNV()
|
||||
calls made in the shaders.
|
||||
See Section 8.19 (Ray Tracing Functions) of the OpenGL Shading Language
|
||||
Specification for more details.
|
||||
|
||||
|
@ -340,8 +349,10 @@ The complete rule to compute a miss shader binding table record address is:
|
|||
|
||||
:: [eq]#missIndex {times} missShaderBindingStride {plus} sbtRecordOffset#
|
||||
|
||||
|
||||
[[acceleration-structure]]
|
||||
== Acceleration Structures
|
||||
|
||||
_Acceleration structures_ are data structures used by the implementation to
|
||||
efficiently manage the scene geometry as it is traversed during a ray
|
||||
tracing query.
|
||||
|
@ -362,22 +373,24 @@ The diagram shows the relationship between top and bottom level acceleration
|
|||
structures.
|
||||
****
|
||||
|
||||
|
||||
[[acceleration-structure-instance]]
|
||||
=== Instances
|
||||
|
||||
_Instances_ are found in top level acceleration structures and contain data
|
||||
that refer to a single bottom-level acceleration structure, a transform
|
||||
matrix, and shading information.
|
||||
Multiple instances may point to a single bottom level acceleration
|
||||
structure.
|
||||
|
||||
An instance is defined in a VkBuffer by a structure consisting of 64 bytes
|
||||
of data.
|
||||
An instance is defined in a slink:VkBuffer by a structure consisting of 64
|
||||
bytes of data.
|
||||
|
||||
* pname:transform is 12 floats representing a 4x3 transform matrix in
|
||||
row-major order
|
||||
* pname:instanceCustomIndex The low 24 bits of a 32-bit integer after the
|
||||
transform.
|
||||
This value appears in the builtin gl_InstanceCustomIndexNV
|
||||
This value appears in the builtin code:gl_InstanceCustomIndexNV
|
||||
* pname:mask The high 8 bits of the same integer as instanceCustomIndex.
|
||||
This is the visibility mask.
|
||||
The instance can only be hit if rayMask & instance.mask != 0
|
||||
|
@ -400,7 +413,7 @@ practice, this struct produces the layout described above:
|
|||
---------------------------------------------------
|
||||
struct VkGeometryInstanceNV {
|
||||
float transform[12];
|
||||
uint32_t instanceId : 24;
|
||||
uint32_t instanceCustomIndex : 24;
|
||||
uint32_t mask : 8;
|
||||
uint32_t instanceOffset : 24;
|
||||
uint32_t flags : 8;
|
||||
|
@ -429,11 +442,13 @@ include::../../api/enums/VkGeometryInstanceFlagBitsNV.txt[]
|
|||
* ename:VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV causes this instance to
|
||||
act as though ename:VK_GEOMETRY_OPAQUE_BIT_NV were specified on all
|
||||
geometries referenced by this instance.
|
||||
This behavior can be overridden by the ray flag gl_RayFlagsNoOpaqueNV.
|
||||
This behavior can be overridden by the ray flag
|
||||
code:gl_RayFlagsNoOpaqueNV.
|
||||
* ename:VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV causes this instance
|
||||
to act as though ename:VK_GEOMETRY_NO_OPAQUE_BIT_NV were specified on
|
||||
to act as though ename:VK_GEOMETRY_OPAQUE_BIT_NV were not specified on
|
||||
all geometries referenced by this instance.
|
||||
This behavior can be overridden by the ray flag gl_RayFlagsOpaqueNV.
|
||||
This behavior can be overridden by the ray flag
|
||||
code:gl_RayFlagsOpaqueNV.
|
||||
|
||||
ename:VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV and
|
||||
ename:VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV must: not be used in the same
|
||||
|
@ -441,21 +456,29 @@ flag.
|
|||
|
||||
--
|
||||
|
||||
|
||||
[[acceleration-structure-geometry]]
|
||||
=== Geometry
|
||||
|
||||
_Geometries_ refer to a triangle or axis-aligned bounding box.
|
||||
|
||||
|
||||
[[acceleration-structure-top-level]]
|
||||
=== Top Level Acceleration Structures
|
||||
|
||||
Opaque acceleration structure for an array of instances.
|
||||
The descriptor referencing this is the starting point for tracing
|
||||
|
||||
|
||||
[[acceleration-structure-bottom-level]]
|
||||
=== Bottom Level Acceleration Structures
|
||||
|
||||
Opaque acceleration structure for an array of geometries.
|
||||
|
||||
|
||||
[[acceleration-structure-building]]
|
||||
=== Building Acceleration Structures
|
||||
|
||||
[open,refpage='vkCmdBuildAccelerationStructureNV',desc='Build an acceleration structure',type='protos']
|
||||
--
|
||||
|
||||
|
@ -478,7 +501,7 @@ include::../../api/protos/vkCmdBuildAccelerationStructureNV.txt[]
|
|||
* pname:dst points to the target acceleration structure for the build.
|
||||
* pname:src points to an existing acceleration structure that can be used
|
||||
to update the pname:dst acceleration structure.
|
||||
* pname:scratch is the sname:VkBuffer that will be used as scratch memory
|
||||
* pname:scratch is the slink:VkBuffer that will be used as scratch memory
|
||||
for the build.
|
||||
* pname:scratchOffset is the offset in bytes relative to the start of
|
||||
pname:scratch that will be used as scratch memory.
|
||||
|
@ -529,6 +552,7 @@ include::../../api/protos/vkCmdBuildAccelerationStructureNV.txt[]
|
|||
include::../../validity/protos/vkCmdBuildAccelerationStructureNV.txt[]
|
||||
--
|
||||
|
||||
|
||||
[[acceleration-structure-copying]]
|
||||
=== Copying Acceleration Structures
|
||||
|
||||
|
@ -595,7 +619,7 @@ include::../../api/protos/vkCmdCopyAccelerationStructureNV.txt[]
|
|||
recorded.
|
||||
* pname:dst points to the target acceleration structure for the copy
|
||||
* pname:src points to the source acceleration structure for the copy
|
||||
* pname:mode is a ename:VkCopyAccelerationStructureModeNV value that
|
||||
* pname:mode is a elink:VkCopyAccelerationStructureModeNV value that
|
||||
specifies additional operations to perform during the copy.
|
||||
|
||||
.Valid Usage
|
||||
|
@ -616,7 +640,7 @@ include::../../validity/protos/vkCmdCopyAccelerationStructureNV.txt[]
|
|||
[open,refpage='VkCopyAccelerationStructureModeNV',desc='Acceleration structure copy mode',type='enums']
|
||||
--
|
||||
|
||||
Possible values of slink:vkCmdCopyAccelerationStructureNV::pname:mode,
|
||||
Possible values of flink:vkCmdCopyAccelerationStructureNV::pname:mode,
|
||||
specifying additional operations to perform during the copy, are:
|
||||
|
||||
include::../../api/enums/VkCopyAccelerationStructureModeNV.txt[]
|
||||
|
@ -630,7 +654,7 @@ include::../../api/enums/VkCopyAccelerationStructureModeNV.txt[]
|
|||
compact version of an acceleration structure pname:src into pname:dst.
|
||||
The acceleration structure pname:dst must: have been created with a
|
||||
pname:compactedSize corresponding to the one returned by
|
||||
slink:vkCmdWriteAccelerationStructurePropertiesNV after the build of the
|
||||
acceleration structure specified by pname:src.
|
||||
flink:vkCmdWriteAccelerationStructuresPropertiesNV after the build of
|
||||
the acceleration structure specified by pname:src.
|
||||
|
||||
--
|
||||
|
|
|
@ -40,8 +40,6 @@ endif::VK_KHR_shared_presentable_image[]
|
|||
structures that describe a range of mipmap levels, array layers, and
|
||||
aspects to be cleared, as described in <<resources-image-views,Image
|
||||
Views>>.
|
||||
The pname:aspectMask of all image subresource ranges must: only include
|
||||
ename:VK_IMAGE_ASPECT_COLOR_BIT.
|
||||
|
||||
Each specified range in pname:pRanges is cleared to the value specified by
|
||||
pname:pColor.
|
||||
|
@ -79,6 +77,10 @@ ifdef::VK_KHR_shared_presentable_image[]
|
|||
ename:VK_IMAGE_LAYOUT_GENERAL, or
|
||||
ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
|
||||
endif::VK_KHR_shared_presentable_image[]
|
||||
* [[VUID-vkCmdClearColorImage-aspectMask-02498]]
|
||||
The slink:VkImageSubresourceRange::pname:aspectMask members of the
|
||||
elements of the pname:pRanges array must: each only include
|
||||
ename:VK_IMAGE_ASPECT_COLOR_BIT
|
||||
* [[VUID-vkCmdClearColorImage-baseMipLevel-01470]]
|
||||
The slink:VkImageSubresourceRange::pname:baseMipLevel members of the
|
||||
elements of the pname:pRanges array must: each be less than the
|
||||
|
@ -138,10 +140,6 @@ include::../api/protos/vkCmdClearDepthStencilImage.txt[]
|
|||
structures that describe a range of mipmap levels, array layers, and
|
||||
aspects to be cleared, as described in <<resources-image-views,Image
|
||||
Views>>.
|
||||
The pname:aspectMask of each image subresource range in pname:pRanges
|
||||
can: include ename:VK_IMAGE_ASPECT_DEPTH_BIT if the image format has a
|
||||
depth component, and ename:VK_IMAGE_ASPECT_STENCIL_BIT if the image
|
||||
format has a stencil component.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
|
@ -164,6 +162,16 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
|
|||
pname:imageLayout must: be either of
|
||||
ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or
|
||||
ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* [[VUID-vkCmdClearDepthStencilImage-aspectMask-02499]]
|
||||
The slink:VkImageSubresourceRange::pname:aspectMask members of the
|
||||
elements of the pname:pRanges array must: each only include
|
||||
ename:VK_IMAGE_ASPECT_DEPTH_BIT if the image format has a depth
|
||||
component
|
||||
* [[VUID-vkCmdClearDepthStencilImage-aspectMask-02500]]
|
||||
The slink:VkImageSubresourceRange::pname:aspectMask members of the
|
||||
elements of the pname:pRanges array must: each only include
|
||||
ename:VK_IMAGE_ASPECT_STENCIL_BIT if the image format has a stencil
|
||||
component
|
||||
* [[VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474]]
|
||||
The slink:VkImageSubresourceRange::pname:baseMipLevel members of the
|
||||
elements of the pname:pRanges array must: each be less than the
|
||||
|
@ -224,6 +232,9 @@ include::../api/protos/vkCmdClearAttachments.txt[]
|
|||
* pname:pAttachments is a pointer to an array of slink:VkClearAttachment
|
||||
structures defining the attachments to clear and the clear values to
|
||||
use.
|
||||
If any attachment to be cleared in the current subpass is
|
||||
ename:VK_ATTACHMENT_UNUSED, then the clear has no effect on that
|
||||
attachment.
|
||||
* pname:rectCount is the number of entries in the pname:pRects array.
|
||||
* pname:pRects points to an array of slink:VkClearRect structures defining
|
||||
regions within each selected attachment to clear.
|
||||
|
@ -236,11 +247,21 @@ attachments and the command parameters.
|
|||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-vkCmdClearAttachments-aspectMask-00015]]
|
||||
* [[VUID-vkCmdClearAttachments-aspectMask-02501]]
|
||||
If the pname:aspectMask member of any element of pname:pAttachments
|
||||
contains ename:VK_IMAGE_ASPECT_COLOR_BIT, the pname:colorAttachment
|
||||
member of that element must: refer to a valid color attachment in the
|
||||
current subpass
|
||||
contains ename:VK_IMAGE_ASPECT_COLOR_BIT, then the pname:colorAttachment
|
||||
member of that element must: either refer to a color attachment which is
|
||||
ename:VK_ATTACHMENT_UNUSED, or must: be a valid color attachment.
|
||||
* [[VUID-vkCmdClearAttachments-aspectMask-02502]]
|
||||
If the pname:aspectMask member of any element of pname:pAttachments
|
||||
contains ename:VK_IMAGE_ASPECT_DEPTH_BIT, then the current subpass'
|
||||
depth/stencil attachment must: either be ename:VK_ATTACHMENT_UNUSED, or
|
||||
must: have a depth component
|
||||
* [[VUID-vkCmdClearAttachments-aspectMask-02503]]
|
||||
If the pname:aspectMask member of any element of pname:pAttachments
|
||||
contains ename:VK_IMAGE_ASPECT_STENCIL_BIT, then the current subpass'
|
||||
depth/stencil attachment must: either be ename:VK_ATTACHMENT_UNUSED, or
|
||||
must: have a stencil component
|
||||
* [[VUID-vkCmdClearAttachments-pRects-00016]]
|
||||
The rectangular region specified by each element of pname:pRects must:
|
||||
be contained within the render area of the current render pass instance
|
||||
|
@ -250,6 +271,14 @@ attachments and the command parameters.
|
|||
* [[VUID-vkCmdClearAttachments-layerCount-01934]]
|
||||
The pname:layerCount member of each element of pname:pRects must: not be
|
||||
`0`
|
||||
ifdef::VK_VERSION_1_1[]
|
||||
* [[VUID-vkCmdClearAttachments-commandBuffer-02504]]
|
||||
If pname:commandBuffer is an unprotected command buffer, then each
|
||||
attachment to be cleared must: not be a protected image.
|
||||
* [[VUID-vkCmdClearAttachments-commandBuffer-02505]]
|
||||
If pname:commandBuffer is a protected command buffer, then each
|
||||
attachment to be cleared must: not be an unprotected image.
|
||||
endif::VK_VERSION_1_1[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
|
||||
* [[VUID-vkCmdClearAttachments-baseArrayLayer-00018]]
|
||||
If the render pass instance this is recorded in uses multiview, then
|
||||
|
@ -287,20 +316,11 @@ include::../api/structs/VkClearAttachment.txt[]
|
|||
|
||||
* pname:aspectMask is a mask selecting the color, depth and/or stencil
|
||||
aspects of the attachment to be cleared.
|
||||
pname:aspectMask can: include ename:VK_IMAGE_ASPECT_COLOR_BIT for color
|
||||
attachments, ename:VK_IMAGE_ASPECT_DEPTH_BIT for depth/stencil
|
||||
attachments with a depth component, and
|
||||
ename:VK_IMAGE_ASPECT_STENCIL_BIT for depth/stencil attachments with a
|
||||
stencil component.
|
||||
If the subpass's depth/stencil attachment is ename:VK_ATTACHMENT_UNUSED,
|
||||
then the clear has no effect.
|
||||
* pname:colorAttachment is only meaningful if
|
||||
ename:VK_IMAGE_ASPECT_COLOR_BIT is set in pname:aspectMask, in which
|
||||
case it is an index to the pname:pColorAttachments array in the
|
||||
slink:VkSubpassDescription structure of the current subpass which
|
||||
selects the color attachment to clear.
|
||||
If pname:colorAttachment is ename:VK_ATTACHMENT_UNUSED then the clear
|
||||
has no effect.
|
||||
* pname:clearValue is the color or depth/stencil value to clear the
|
||||
attachment to, as described in <<clears-values,Clear Values>> below.
|
||||
|
||||
|
@ -331,14 +351,6 @@ ifdef::VK_EXT_image_drm_format_modifier[]
|
|||
endif::VK_EXT_image_drm_format_modifier[]
|
||||
* [[VUID-VkClearAttachment-clearValue-00021]]
|
||||
pname:clearValue must: be a valid sname:VkClearValue union
|
||||
ifdef::VK_VERSION_1_1[]
|
||||
* [[VUID-VkClearAttachment-commandBuffer-01809]]
|
||||
If pname:commandBuffer is an unprotected command buffer, then the
|
||||
attachment to be cleared must: not be a protected image.
|
||||
* [[VUID-VkClearAttachment-commandBuffer-01810]]
|
||||
If pname:commandBuffer is a protected command buffer, then the
|
||||
attachment to be cleared must: not be an unprotected image.
|
||||
endif::VK_VERSION_1_1[]
|
||||
****
|
||||
|
||||
include::../validity/structs/VkClearAttachment.txt[]
|
||||
|
|
|
@ -229,8 +229,8 @@ endif::VK_VERSION_1_1[]
|
|||
--
|
||||
include::../api/flags/VkCommandPoolCreateFlags.txt[]
|
||||
|
||||
sname:VkCommandPoolCreateFlags is a bitmask type for setting a mask of zero
|
||||
or more slink:VkCommandPoolCreateFlagBits.
|
||||
tname:VkCommandPoolCreateFlags is a bitmask type for setting a mask of zero
|
||||
or more elink:VkCommandPoolCreateFlagBits.
|
||||
--
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
|
||||
|
@ -310,7 +310,7 @@ or the equivalent
|
|||
include::../api/flags/VkCommandPoolTrimFlagsKHR.txt[]
|
||||
endif::VK_KHR_maintenance1[]
|
||||
|
||||
sname:VkCommandPoolTrimFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkCommandPoolTrimFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -366,8 +366,8 @@ include::../api/enums/VkCommandPoolResetFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkCommandPoolResetFlags.txt[]
|
||||
|
||||
sname:VkCommandPoolResetFlags is a bitmask type for setting a mask of zero
|
||||
or more slink:VkCommandPoolResetFlagBits.
|
||||
tname:VkCommandPoolResetFlags is a bitmask type for setting a mask of zero
|
||||
or more elink:VkCommandPoolResetFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='vkDestroyCommandPool',desc='Destroy a command pool object',type='protos']
|
||||
|
@ -535,8 +535,8 @@ include::../api/enums/VkCommandBufferResetFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkCommandBufferResetFlags.txt[]
|
||||
|
||||
sname:VkCommandBufferResetFlags is a bitmask type for setting a mask of zero
|
||||
or more slink:VkCommandBufferResetFlagBits.
|
||||
tname:VkCommandBufferResetFlags is a bitmask type for setting a mask of zero
|
||||
or more elink:VkCommandBufferResetFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='vkFreeCommandBuffers',desc='Free command buffers',type='protos']
|
||||
|
@ -678,8 +678,8 @@ include::../api/enums/VkCommandBufferUsageFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkCommandBufferUsageFlags.txt[]
|
||||
|
||||
sname:VkCommandBufferUsageFlags is a bitmask type for setting a mask of zero
|
||||
or more slink:VkCommandBufferUsageFlagBits.
|
||||
tname:VkCommandBufferUsageFlags is a bitmask type for setting a mask of zero
|
||||
or more elink:VkCommandBufferUsageFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkCommandBufferInheritanceInfo',desc='Structure specifying command buffer inheritance info',type='structs']
|
||||
|
@ -1225,7 +1225,7 @@ ifdef::VK_VERSION_1_1[]
|
|||
[open,refpage='VkProtectedSubmitInfo',desc='Structure indicating whether the submission is protected',type='structs']
|
||||
--
|
||||
|
||||
If the ename:pNext chain of slink:VkSubmitInfo includes a
|
||||
If the pname:pNext chain of slink:VkSubmitInfo includes a
|
||||
sname:VkProtectedSubmitInfo structure, then the structure indicates whether
|
||||
the batch is protected.
|
||||
The sname:VkProtectedSubmitInfo structure is defined as:
|
||||
|
|
|
@ -74,9 +74,9 @@ endif::VK_EXT_debug_utils[]
|
|||
ifdef::VK_EXT_validation_cache[]
|
||||
| ename:VK_OBJECT_TYPE_VALIDATION_CACHE_EXT | slink:VkValidationCacheEXT
|
||||
endif::VK_EXT_validation_cache[]
|
||||
ifdef::VK_NVX_raytracing[]
|
||||
| ename:VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX | slink:VkAccelerationStructureNVX
|
||||
endif::VK_NVX_raytracing[]
|
||||
ifdef::VK_NV_ray_tracing[]
|
||||
| ename:VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV | slink:VkAccelerationStructureNV
|
||||
endif::VK_NV_ray_tracing[]
|
||||
|====
|
||||
|
||||
--
|
||||
|
|
|
@ -474,8 +474,8 @@ endif::VK_KHR_push_descriptor[]
|
|||
--
|
||||
include::../api/flags/VkDescriptorSetLayoutCreateFlags.txt[]
|
||||
|
||||
sname:VkDescriptorSetLayoutCreateFlags is a bitmask type for setting a mask
|
||||
of zero or more slink:VkDescriptorSetLayoutCreateFlagBits.
|
||||
tname:VkDescriptorSetLayoutCreateFlags is a bitmask type for setting a mask
|
||||
of zero or more elink:VkDescriptorSetLayoutCreateFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkDescriptorSetLayoutBinding',desc='Structure specifying a descriptor set layout binding',type='structs']
|
||||
|
@ -671,7 +671,7 @@ endif::VK_KHR_push_descriptor[]
|
|||
ifdef::VK_EXT_inline_uniform_block[]
|
||||
* [[VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingInlineUniformBlockUpdateAfterBind-02211]]
|
||||
If
|
||||
slink:VkPhysicalDeviceInlineUniformBlockFeatureEXT::pname:descriptorBindingInlineUniformBlockUpdateAfterBind
|
||||
slink:VkPhysicalDeviceInlineUniformBlockFeaturesEXT::pname:descriptorBindingInlineUniformBlockUpdateAfterBind
|
||||
is not enabled, all bindings with descriptor type
|
||||
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must: not use
|
||||
ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT
|
||||
|
@ -1564,7 +1564,7 @@ include::../validity/structs/VkPipelineLayoutCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineLayoutCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineLayoutCreateFlags is a bitmask type for setting a mask, but
|
||||
tname:VkPipelineLayoutCreateFlags is a bitmask type for setting a mask, but
|
||||
is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -2007,8 +2007,8 @@ endif::VK_EXT_descriptor_indexing[]
|
|||
--
|
||||
include::../api/flags/VkDescriptorPoolCreateFlags.txt[]
|
||||
|
||||
sname:VkDescriptorPoolCreateFlags is a bitmask type for setting a mask of
|
||||
zero or more slink:VkDescriptorPoolCreateFlagBits.
|
||||
tname:VkDescriptorPoolCreateFlags is a bitmask type for setting a mask of
|
||||
zero or more elink:VkDescriptorPoolCreateFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkDescriptorPoolSize',desc='Structure specifying descriptor pool size',type='structs']
|
||||
|
@ -2365,7 +2365,7 @@ include::../validity/protos/vkResetDescriptorPool.txt[]
|
|||
--
|
||||
include::../api/flags/VkDescriptorPoolResetFlags.txt[]
|
||||
|
||||
sname:VkDescriptorPoolResetFlags is a bitmask type for setting a mask, but
|
||||
tname:VkDescriptorPoolResetFlags is a bitmask type for setting a mask, but
|
||||
is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -2527,10 +2527,10 @@ ifdef::VK_EXT_inline_uniform_block[]
|
|||
.Note
|
||||
====
|
||||
The same behavior applies to bindings with a descriptor type of
|
||||
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK where pname:descriptorCount
|
||||
specifies the number of bytes to update while pname:dstArrayElement
|
||||
specifies the starting byte offset, thus in this case if the
|
||||
pname:dstBinding has a smaller byte size than the sum of
|
||||
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT where
|
||||
pname:descriptorCount specifies the number of bytes to update while
|
||||
pname:dstArrayElement specifies the starting byte offset, thus in this case
|
||||
if the pname:dstBinding has a smaller byte size than the sum of
|
||||
pname:dstArrayElement and pname:descriptorCount, then the remainder will be
|
||||
used to update the subsequent binding - [eq]#pname:dstBinding+1# starting at
|
||||
offset zero.
|
||||
|
@ -3269,7 +3269,7 @@ or the equivalent
|
|||
include::../api/flags/VkDescriptorUpdateTemplateCreateFlagsKHR.txt[]
|
||||
endif::VK_KHR_descriptor_update_template[]
|
||||
|
||||
sname:VkDescriptorUpdateTemplateCreateFlags is a bitmask type for setting a
|
||||
tname:VkDescriptorUpdateTemplateCreateFlags is a bitmask type for setting a
|
||||
mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -348,8 +348,8 @@ If pname:deviceLUIDValid is ename:VK_FALSE, the values of pname:deviceLUID
|
|||
and pname:deviceNodeMask are undefined:.
|
||||
If pname:deviceLUIDValid is ename:VK_TRUE and Vulkan is running on the
|
||||
Windows operating system, the contents of pname:deviceLUID can: be cast to
|
||||
an sname:LUID object and must: be equal to the locally unique identifier of
|
||||
a sname:IDXGIAdapter1 object that corresponds to pname:physicalDevice.
|
||||
an code:LUID object and must: be equal to the locally unique identifier of a
|
||||
code:IDXGIAdapter1 object that corresponds to pname:physicalDevice.
|
||||
If pname:deviceLUIDValid is ename:VK_TRUE, pname:deviceNodeMask must:
|
||||
contain exactly one bit.
|
||||
If Vulkan is running on an operating system that supports the Direct3D 12
|
||||
|
@ -658,8 +658,8 @@ For further details see <<devsandqueues-queues,Queues>>.
|
|||
--
|
||||
include::../api/flags/VkQueueFlags.txt[]
|
||||
|
||||
sname:VkQueueFlags is a bitmask type for setting a mask of zero or more
|
||||
slink:VkQueueFlagBits.
|
||||
tname:VkQueueFlags is a bitmask type for setting a mask of zero or more
|
||||
elink:VkQueueFlagBits.
|
||||
--
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
|
||||
|
@ -958,7 +958,7 @@ ifdef::VK_AMD_negative_viewport_height[]
|
|||
ifdef::VK_VERSION_1_1[]
|
||||
* [[VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840]]
|
||||
pname:ppEnabledExtensionNames must: not contain
|
||||
code:VK_AMD_negative_viewport_height
|
||||
`<<VK_AMD_negative_viewport_height>>`
|
||||
endif::VK_VERSION_1_1[]
|
||||
ifndef::VK_VERSION_1_1[]
|
||||
ifdef::VK_KHR_maintenance1[]
|
||||
|
@ -977,7 +977,7 @@ include::../validity/structs/VkDeviceCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkDeviceCreateFlags.txt[]
|
||||
|
||||
sname:VkDeviceCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkDeviceCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -1413,8 +1413,8 @@ endif::VK_VERSION_1_1[]
|
|||
--
|
||||
include::../api/flags/VkDeviceQueueCreateFlags.txt[]
|
||||
|
||||
sname:VkDeviceQueueCreateFlags is a bitmask type for setting a mask of zero
|
||||
or more slink:VkDeviceQueueCreateFlagBits.
|
||||
tname:VkDeviceQueueCreateFlags is a bitmask type for setting a mask of zero
|
||||
or more elink:VkDeviceQueueCreateFlagBits.
|
||||
--
|
||||
|
||||
ifdef::VK_EXT_global_priority[]
|
||||
|
@ -1584,7 +1584,7 @@ pname:pQueue will return dlink:VK_NULL_HANDLE.
|
|||
sname:VkDeviceQueueCreateInfo structure
|
||||
* [[VUID-VkDeviceQueueInfo2-queueIndex-01843]]
|
||||
pname:queueIndex must: be less than the number of queues created for the
|
||||
specified queue family index and sname:VkDeviceQueueCreateFlags member
|
||||
specified queue family index and tlink:VkDeviceQueueCreateFlags member
|
||||
pname:flags equal to this pname:flags value when pname:device was
|
||||
created, via the pname:queueCount member of the
|
||||
sname:VkDeviceQueueCreateInfo structure
|
||||
|
|
|
@ -126,21 +126,21 @@ ifdef::VK_VERSION_1_1[]
|
|||
* [[VUID-vkCmdDispatch-commandBuffer-01845]]
|
||||
If pname:commandBuffer is a protected command buffer, and any pipeline
|
||||
stage in the sname:VkPipeline object bound to
|
||||
ename:VK_PIPELINE_POINT_COMPUTE writes to any image or buffer, that
|
||||
ename:VK_PIPELINE_BIND_POINT_COMPUTE writes to any image or buffer, that
|
||||
image or buffer must: not be an unprotected image or unprotected buffer.
|
||||
* [[VUID-vkCmdDispatch-commandBuffer-01846]]
|
||||
If pname:commandBuffer is a protected command buffer, and any pipeline
|
||||
stage other than the compute pipeline stage in the sname:VkPipeline
|
||||
object bound to ename:VK_PIPELINE_POINT_COMPUTE reads from any image or
|
||||
buffer, the image or buffer must: not be a protected image or protected
|
||||
buffer.
|
||||
object bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE reads from any
|
||||
image or buffer, the image or buffer must: not be a protected image or
|
||||
protected buffer.
|
||||
endif::VK_VERSION_1_1[]
|
||||
ifdef::VK_NV_corner_sampled_image[]
|
||||
* [[VUID-vkCmdDispatch-flags-02040]]
|
||||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -262,21 +262,21 @@ ifdef::VK_VERSION_1_1[]
|
|||
* [[VUID-vkCmdDispatchIndirect-commandBuffer-01848]]
|
||||
If pname:commandBuffer is a protected command buffer, and any pipeline
|
||||
stage in the sname:VkPipeline object bound to
|
||||
ename:VK_PIPELINE_POINT_COMPUTE writes to any image or buffer, that
|
||||
ename:VK_PIPELINE_BIND_POINT_COMPUTE writes to any image or buffer, that
|
||||
image or buffer must: not be an unprotected image or unprotected buffer.
|
||||
* [[VUID-vkCmdDispatchIndirect-commandBuffer-01849]]
|
||||
If pname:commandBuffer is a protected command buffer, and any pipeline
|
||||
stage other than the compute pipeline stage in the sname:VkPipeline
|
||||
object bound to ename:VK_PIPELINE_POINT_COMPUTE reads from any image or
|
||||
buffer, the image or buffer must: not be a protected image or protected
|
||||
buffer.
|
||||
object bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE reads from any
|
||||
image or buffer, the image or buffer must: not be a protected image or
|
||||
protected buffer.
|
||||
endif::VK_VERSION_1_1[]
|
||||
ifdef::VK_NV_corner_sampled_image[]
|
||||
* [[VUID-vkCmdDispatchIndirect-flags-02041]]
|
||||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
|
|
@ -87,7 +87,7 @@ include::../validity/structs/VkPipelineInputAssemblyStateCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineInputAssemblyStateCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineInputAssemblyStateCreateFlags is a bitmask type for setting
|
||||
tname:VkPipelineInputAssemblyStateCreateFlags is a bitmask type for setting
|
||||
a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -677,7 +677,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -871,7 +871,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -1074,7 +1074,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -1322,7 +1322,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -1529,7 +1529,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -1735,7 +1735,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -1991,7 +1991,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -2199,7 +2199,7 @@ ifdef::VK_NV_corner_sampled_image[]
|
|||
Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
|
||||
result of this command must: only be sampled using a
|
||||
slink:VkSamplerAddressMode of
|
||||
elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
****
|
||||
|
@ -2536,8 +2536,8 @@ include::../api/enums/VkConditionalRenderingFlagBitsEXT.txt[]
|
|||
--
|
||||
include::../api/flags/VkConditionalRenderingFlagsEXT.txt[]
|
||||
|
||||
sname:VkConditionalRenderingFlagsEXT is a bitmask type for setting a mask of
|
||||
zero or more slink:VkConditionalRenderingFlagBitsEXT.
|
||||
tname:VkConditionalRenderingFlagsEXT is a bitmask type for setting a mask of
|
||||
zero or more elink:VkConditionalRenderingFlagBitsEXT.
|
||||
|
||||
[open,refpage='vkCmdEndConditionalRenderingEXT',desc='Define the end of a conditional rendering block',type='protos']
|
||||
--
|
||||
|
|
|
@ -1065,7 +1065,7 @@ include::../api/structs/VkPhysicalDeviceProtectedMemoryFeatures.txt[]
|
|||
* pname:protectedMemory specifies whether protected memory is supported.
|
||||
|
||||
If the sname:VkPhysicalDeviceProtectedMemoryFeatures structure is included
|
||||
in the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is filled
|
||||
in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is filled
|
||||
with a value indicating whether the feature is supported.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceProtectedMemoryFeatures.txt[]
|
||||
|
@ -1129,7 +1129,7 @@ include::../api/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.txt[]
|
|||
the primary command buffer.
|
||||
|
||||
If the sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT structure is
|
||||
included in the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is
|
||||
filled with values indicating the implementation-dependent behavior.
|
||||
sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT can: also be used in
|
||||
pname:pNext chain of slink:VkDeviceCreateInfo to enable the features.
|
||||
|
@ -1153,7 +1153,7 @@ include::../api/structs/VkPhysicalDeviceShaderDrawParameterFeatures.txt[]
|
|||
specifies whether shader draw parameters are supported.
|
||||
|
||||
If the sname:VkPhysicalDeviceShaderDrawParameterFeatures structure is
|
||||
included in the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is
|
||||
filled with a value indicating whether the feature is supported.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceShaderDrawParameterFeatures.txt[]
|
||||
|
@ -1175,7 +1175,7 @@ include::../api/structs/VkPhysicalDeviceMeshShaderFeaturesNV.txt[]
|
|||
mesh shader stage is supported.
|
||||
|
||||
If the sname:VkPhysicalDeviceMeshShaderFeaturesNV structure is included in
|
||||
the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is filled with
|
||||
the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is filled with
|
||||
a value indicating whether the feature is supported.
|
||||
sname:VkPhysicalDeviceMeshShaderFeaturesNV can: also be used in pname:pNext
|
||||
chain of slink:VkDeviceCreateInfo to enable the features.
|
||||
|
@ -1401,7 +1401,7 @@ include::../api/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.txt[]
|
|||
is supported.
|
||||
|
||||
If the sname:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT structure is
|
||||
included in the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2, it is
|
||||
filled with values indicating the implementation-dependent behavior.
|
||||
sname:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT can: also be used in
|
||||
pname:pNext chain of slink:VkDeviceCreateInfo to enable the feature.
|
||||
|
@ -1426,7 +1426,7 @@ describe the following features:
|
|||
* [[features-features-astc-decodeModeSharedExponent]]
|
||||
pname:decodeModeSharedExponent indicates whether the implementation
|
||||
supports decoding ASTC compressed formats to
|
||||
ename:FORMAT_E5B9G9R9_UFLOAT_PACK32 internal precision.
|
||||
ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 internal precision.
|
||||
|
||||
If the sname:VkPhysicalDeviceASTCDecodeFeaturesEXT structure is included in
|
||||
the pname:pNext chain of flink:vkGetPhysicalDeviceFeatures2KHR, it is filled
|
||||
|
@ -1652,7 +1652,7 @@ structure describe the following features:
|
|||
See <<texture-derivatives-compute,Compute Shader Derivatives>> for more
|
||||
information.
|
||||
|
||||
If the sname:VkPhysicalDeviceComputeShaderDerivativesNV structure is
|
||||
If the sname:VkPhysicalDeviceComputeShaderDerivativesFeaturesNV structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR, it
|
||||
is filled with values indicating whether each feature is supported.
|
||||
sname:VkPhysicalDeviceComputeShaderDerivativesFeaturesNV can: also be used
|
||||
|
@ -2569,34 +2569,6 @@ range.
|
|||
* [[features-limits-nonCoherentAtomSize]] pname:nonCoherentAtomSize is the
|
||||
size and alignment in bytes that bounds concurrent access to
|
||||
<<memory-device-hostaccess, host-mapped device memory>>.
|
||||
ifdef::VK_EXT_discard_rectangles[]
|
||||
* [[features-limits-maxDiscardRectangles]]
|
||||
slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT::pname:maxDiscardRectangles
|
||||
is the maximum number of active discard rectangles.
|
||||
This limit can be queried by setting the pname:pNext pointer from a
|
||||
slink:VkPhysicalDeviceProperties2 object to an instance of
|
||||
slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT and using
|
||||
fname:vkGetPhysicalDeviceProperties2 to fill out the members.
|
||||
endif::VK_EXT_discard_rectangles[]
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
||||
* [[features-limits-pointClipping]]
|
||||
slink:VkPhysicalDevicePointClippingProperties::pname:pointClippingBehavior
|
||||
defines the clipping behavior of points.
|
||||
This limit can be queried by setting the pname:pNext pointer from a
|
||||
slink:VkPhysicalDeviceProperties2 object to an instance of
|
||||
slink:VkPhysicalDevicePointClippingProperties and using
|
||||
fname:vkGetPhysicalDeviceProperties2 to fill out the members.
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
||||
ifdef::VK_EXT_vertex_attribute_divisor[]
|
||||
* [[features-limits-maxVertexAttribDivisor]]
|
||||
sname:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::pname:maxVertexAttribDivisor
|
||||
is the maximum value of the number of instances that will repeat the
|
||||
value of vertex attribute data when instanced rendering is enabled.
|
||||
This limit can be queried by setting the pname:pNext pointer from a
|
||||
slink:VkPhysicalDeviceProperties2 object to an instance of
|
||||
slink:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT and using
|
||||
fname:vkGetPhysicalDeviceProperties2 to fill out the members.
|
||||
endif::VK_EXT_vertex_attribute_divisor[]
|
||||
|
||||
|
||||
// refBody VkPhysicalDeviceLimits
|
||||
|
@ -2641,8 +2613,8 @@ include::../api/enums/VkSampleCountFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkSampleCountFlags.txt[]
|
||||
|
||||
sname:VkSampleCountFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkSampleCountFlagBits.
|
||||
tname:VkSampleCountFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkSampleCountFlagBits.
|
||||
--
|
||||
|
||||
ifdef::VK_KHR_push_descriptor[]
|
||||
|
@ -2658,13 +2630,18 @@ include::../api/structs/VkPhysicalDevicePushDescriptorPropertiesKHR.txt[]
|
|||
The members of the sname:VkPhysicalDevicePushDescriptorPropertiesKHR
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-maxPushDescriptors]] pname:maxPushDescriptors is the
|
||||
maximum number of descriptors that can: be used in a descriptor set
|
||||
created with
|
||||
ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set.
|
||||
|
||||
include::../validity/structs/VkPhysicalDevicePushDescriptorPropertiesKHR.txt[]
|
||||
If the sname:VkPhysicalDevicePushDescriptorPropertiesKHR structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
|
||||
is filled with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDevicePushDescriptorPropertiesKHR.txt[]
|
||||
--
|
||||
|
||||
endif::VK_KHR_push_descriptor[]
|
||||
|
@ -2672,6 +2649,7 @@ endif::VK_KHR_push_descriptor[]
|
|||
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
|
||||
|
||||
[open,refpage='VkPhysicalDeviceMultiviewProperties',desc='Structure describing multiview limits that can be supported by an implementation',type='structs']
|
||||
|
||||
--
|
||||
|
||||
The sname:VkPhysicalDeviceMultiviewProperties structure is defined as:
|
||||
|
@ -2687,6 +2665,8 @@ endif::VK_KHR_multiview[]
|
|||
The members of the sname:VkPhysicalDeviceMultiviewProperties structure
|
||||
describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-maxMultiviewViewCount]] pname:maxMultiviewViewCount is
|
||||
one greater than the maximum view index that can: be used in a subpass.
|
||||
* [[features-limits-maxMultiviewInstanceIndex]]
|
||||
|
@ -2694,12 +2674,12 @@ describe the following implementation-dependent limits:
|
|||
index allowed to be generated by a drawing command recorded within a
|
||||
subpass of a multiview render pass instance.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceMultiviewProperties.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceMultiviewProperties structure is included in
|
||||
the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
|
||||
with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceMultiviewProperties.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_VERSION_1_1,VK_KHR_multiview[]
|
||||
|
@ -2717,15 +2697,17 @@ include::../api/structs/VkPhysicalDeviceDiscardRectanglePropertiesEXT.txt[]
|
|||
The members of the sname:VkPhysicalDeviceDiscardRectanglePropertiesEXT
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:maxDiscardRectangles is the maximum number of discard rectangles
|
||||
that can: be specified.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceDiscardRectanglePropertiesEXT.txt[]
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-maxDiscardRectangles]] pname:maxDiscardRectangles is
|
||||
the maximum number of active discard rectangles that can: be specified.
|
||||
|
||||
If the sname:VkPhysicalDeviceDiscardRectanglePropertiesEXT structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
|
||||
is filled with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceDiscardRectanglePropertiesEXT.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_EXT_discard_rectangles[]
|
||||
|
@ -2743,6 +2725,8 @@ include::../api/structs/VkPhysicalDeviceSampleLocationsPropertiesEXT.txt[]
|
|||
The members of the sname:VkPhysicalDeviceSampleLocationsPropertiesEXT
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-sampleLocationSampleCounts]]
|
||||
pname:sampleLocationSampleCounts is a bitmask of
|
||||
elink:VkSampleCountFlagBits indicating the sample counts supporting
|
||||
|
@ -2766,12 +2750,12 @@ structure describe the following implementation-dependent limits:
|
|||
If set to ename:VK_FALSE, then the sample locations must: stay constant
|
||||
in each subpass.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceSampleLocationsPropertiesEXT.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceSampleLocationsPropertiesEXT structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
|
||||
is filled with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceSampleLocationsPropertiesEXT.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_EXT_sample_locations[]
|
||||
|
@ -2789,16 +2773,18 @@ include::../api/structs/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.txt[]
|
|||
The members of the sname:VkPhysicalDeviceExternalMemoryHostPropertiesEXT
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-minImportedHostPointerAlignment]]
|
||||
pname:minImportedHostPointerAlignment is the minimum required:
|
||||
alignment, in bytes, for the base address and size of host pointers that
|
||||
can: be imported to a Vulkan memory object.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceExternalMemoryHostPropertiesEXT structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2KHR,
|
||||
it is filled with the implementation-dependent limits.
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
|
||||
is filled with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.txt[]
|
||||
|
||||
--
|
||||
|
||||
|
@ -2818,18 +2804,20 @@ The members of the
|
|||
sname:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX structure
|
||||
describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-perViewPositionAllComponents]]
|
||||
pname:perViewPositionAllComponents is ename:VK_TRUE if the
|
||||
implementation supports per-view position values that differ in
|
||||
components other than the X component.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
|
||||
structure is included in the pname:pNext chain of
|
||||
slink:VkPhysicalDeviceProperties2, it is filled with the
|
||||
implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_NVX_multiview_per_view_attributes[]
|
||||
|
@ -2854,11 +2842,12 @@ describe the following implementation-dependent limit:
|
|||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:pointClippingBehavior is the point clipping behavior supported by
|
||||
the implementation, and is of type elink:VkPointClippingBehavior.
|
||||
* [[features-limits-pointClipping]] pname:pointClippingBehavior is the
|
||||
point clipping behavior supported by the implementation, and is of type
|
||||
elink:VkPointClippingBehavior.
|
||||
|
||||
If the sname:VkPhysicalDevicePointClippingProperties structure is included
|
||||
in the pname:pNext chain of flink:VkPhysicalDeviceProperties2, it is filled
|
||||
in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
|
||||
with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDevicePointClippingProperties.txt[]
|
||||
|
@ -2904,12 +2893,12 @@ describe the following implementation-dependent limits:
|
|||
available in all stages, or are restricted to fragment and compute
|
||||
stages.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceSubgroupProperties.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceSubgroupProperties structure is included in the
|
||||
pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled with
|
||||
the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceSubgroupProperties.txt[]
|
||||
|
||||
--
|
||||
|
||||
[open,refpage='VkSubgroupFeatureFlagBits',desc='Enum describing what subgroup operations are supported',type='enums']
|
||||
|
@ -2963,8 +2952,8 @@ endif::VK_NV_shader_subgroup_partitioned[]
|
|||
--
|
||||
include::../api/flags/VkSubgroupFeatureFlags.txt[]
|
||||
|
||||
sname:VkSubgroupFeatureFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkSubgroupFeatureFlagBits.
|
||||
tname:VkSubgroupFeatureFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkSubgroupFeatureFlagBits.
|
||||
--
|
||||
|
||||
endif::VK_VERSION_1_1[]
|
||||
|
@ -2982,6 +2971,8 @@ include::../api/structs/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.txt[
|
|||
The members of the sname:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-advancedBlendMaxColorAttachments]]
|
||||
pname:advancedBlendMaxColorAttachments is one greater than the highest
|
||||
color attachment index that can: be used in a subpass, for a pipeline
|
||||
|
@ -3012,11 +3003,12 @@ structure describe the following implementation-dependent limits:
|
|||
operation enums are supported.
|
||||
See the valid usage of slink:VkPipelineColorBlendAttachmentState.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT structure
|
||||
is included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2,
|
||||
it is filled with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_EXT_blend_operation_advanced[]
|
||||
|
@ -3034,10 +3026,16 @@ include::../api/structs/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.txt[
|
|||
The members of the sname:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-maxVertexAttribDivisor]] pname:maxVertexAttribDivisor
|
||||
is the maximum value of the number of instances that will repeat the
|
||||
value of vertex attribute data when instanced rendering is enabled.
|
||||
|
||||
If the sname:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT structure
|
||||
is included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2,
|
||||
it is filled with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.txt[]
|
||||
|
||||
--
|
||||
|
@ -3056,6 +3054,8 @@ include::../api/structs/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.txt[]
|
|||
The members of the sname:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-filterMinmaxSingleComponentFormats]]
|
||||
pname:filterMinmaxSingleComponentFormats is a boolean value indicating
|
||||
whether a minimum set of required formats support min/max filtering.
|
||||
|
@ -3102,6 +3102,7 @@ If pname:filterMinmaxImageComponentMapping is ename:VK_TRUE this restriction
|
|||
does not apply and image component mapping works as normal.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_EXT_sampler_filter_minmax[]
|
||||
|
@ -3124,7 +3125,7 @@ include::../api/structs/VkPhysicalDeviceProtectedMemoryProperties.txt[]
|
|||
include process termination or device loss.
|
||||
|
||||
If the sname:VkPhysicalDeviceProtectedMemoryProperties structure is included
|
||||
in the pname:pNext chain of flink:VkPhysicalDeviceProperties2, it is filled
|
||||
in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
|
||||
with a value indicating the implementation-dependent behavior.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceProtectedMemoryProperties.txt[]
|
||||
|
@ -3150,6 +3151,8 @@ endif::VK_KHR_maintenance3[]
|
|||
The members of the sname:VkPhysicalDeviceMaintenance3Properties structure
|
||||
describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-maxPerSetDescriptors]] pname:maxPerSetDescriptors is a
|
||||
maximum number of descriptors (summed over all descriptor types) in a
|
||||
single descriptor set that is guaranteed to satisfy any
|
||||
|
@ -3166,6 +3169,7 @@ the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
|
|||
with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceMaintenance3Properties.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_VERSION_1_1,VK_KHR_maintenance3[]
|
||||
|
@ -3182,6 +3186,8 @@ include::../api/structs/VkPhysicalDeviceMeshShaderPropertiesNV.txt[]
|
|||
The members of the sname:VkPhysicalDeviceMeshShaderPropertiesNV structure
|
||||
describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:maxDrawMeshTasksCount is the maximum number of local workgroups
|
||||
that can: be launched by a single draw mesh tasks command.
|
||||
See <<drawing-mesh-shading>>.
|
||||
|
@ -3255,6 +3261,8 @@ include::../api/structs/VkPhysicalDeviceDescriptorIndexingPropertiesEXT.txt[]
|
|||
The members of the sname:VkPhysicalDeviceDescriptorIndexingPropertiesEXT
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-maxUpdateAfterBindDescriptorsInAllPools]]
|
||||
pname:maxUpdateAfterBindDescriptorsInAllPools is the maximum number of
|
||||
descriptors (summed over all descriptor types) that can: be created
|
||||
|
@ -3407,8 +3415,8 @@ structure describe the following implementation-dependent limits:
|
|||
set.
|
||||
|
||||
If the sname:VkPhysicalDeviceDescriptorIndexingPropertiesEXT structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2KHR,
|
||||
it is filled with the implementation-dependent limits.
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
|
||||
is filled with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceDescriptorIndexingPropertiesEXT.txt[]
|
||||
--
|
||||
|
@ -3428,6 +3436,8 @@ include::../api/structs/VkPhysicalDeviceInlineUniformBlockPropertiesEXT.txt[]
|
|||
The members of the sname:VkPhysicalDeviceInlineUniformBlockPropertiesEXT
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-maxInlineUniformBlockSize]]
|
||||
pname:maxInlineUniformBlockSize is the maximum size in bytes of an
|
||||
<<descriptorsets-inlineuniformblock, inline uniform block>> binding.
|
||||
|
@ -3482,8 +3492,8 @@ ifdef::VK_EXT_descriptor_indexing[]
|
|||
endif::VK_EXT_descriptor_indexing[]
|
||||
|
||||
If the sname:VkPhysicalDeviceInlineUniformBlockPropertiesEXT structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2KHR,
|
||||
it is filled with the implementation-dependent limits.
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
|
||||
is filled with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceInlineUniformBlockPropertiesEXT.txt[]
|
||||
--
|
||||
|
@ -3505,6 +3515,8 @@ The members of the
|
|||
sname:VkPhysicalDeviceConservativeRasterizationPropertiesEXT structure
|
||||
describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-primitiveOverestimationSize]]
|
||||
pname:primitiveOverestimationSize is the size in pixels the generating
|
||||
primitive is increased at each of its edges during conservative
|
||||
|
@ -3592,13 +3604,13 @@ ifndef::VK_EXT_post_depth_coverage[]
|
|||
pname:conservativeRasterizationPostDepthCoverage must: be false.
|
||||
endif::VK_EXT_post_depth_coverage[]
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceConservativeRasterizationPropertiesEXT
|
||||
structure is included in the pname:pNext chain of
|
||||
slink:VkPhysicalDeviceProperties2KHR, it is filled with the
|
||||
slink:VkPhysicalDeviceProperties2, it is filled with the
|
||||
implementation-dependent limits and properties.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_EXT_conservative_rasterization[]
|
||||
|
@ -3616,6 +3628,8 @@ include::../api/structs/VkPhysicalDeviceShaderCorePropertiesAMD.txt[]
|
|||
The members of the sname:VkPhysicalDeviceShaderCorePropertiesAMD structure
|
||||
describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-shaderEngineCount]] pname:shaderEngineCount is an
|
||||
unsigned integer value indicating the number of shader engines found
|
||||
inside the shader core of the physical device.
|
||||
|
@ -3664,12 +3678,12 @@ describe the following implementation-dependent limits:
|
|||
pname:vgprAllocationGranularity is an unsigned integer value indicating
|
||||
the granularity of VGPR allocation for a wave.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceShaderCorePropertiesAMD.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceShaderCorePropertiesAMD structure is included
|
||||
in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
|
||||
with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceShaderCorePropertiesAMD.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_AMD_shader_core_properties[]
|
||||
|
@ -3688,6 +3702,8 @@ The members of the sname:VkPhysicalDeviceShadingRateImagePropertiesNV
|
|||
structure describe the following implementation-dependent properties related
|
||||
to the <<primsrast-shading-rate-image, shading rate image>> feature:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-shading-rate-texel-size]] pname:shadingRateTexelSize
|
||||
indicates the width and height of the portion of the framebuffer
|
||||
corresponding to each texel in the shading rate image.
|
||||
|
@ -3704,12 +3720,12 @@ to the <<primsrast-shading-rate-image, shading rate image>> feature:
|
|||
final shading rate will be adjusted so that its product does not exceed
|
||||
the limit.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceShadingRateImagePropertiesNV.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceShadingRateImagePropertiesNV structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
|
||||
is filled with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceShadingRateImagePropertiesNV.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_NV_shading_rate_image[]
|
||||
|
@ -3727,6 +3743,8 @@ include::../api/structs/VkPhysicalDeviceTransformFeedbackPropertiesEXT.txt[]
|
|||
The members of the sname:VkPhysicalDeviceTransformFeedbackPropertiesEXT
|
||||
structure describe the following implementation-dependent limits:
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-limits-maxTransformFeedbackStreams]]
|
||||
pname:maxTransformFeedbackStreams is the maximum number of vertex
|
||||
streams that can be output from geometry shaders declared with the
|
||||
|
@ -3788,11 +3806,11 @@ structure describe the following implementation-dependent limits:
|
|||
flink:vkCmdDrawIndirectByteCountEXT function otherwise the function
|
||||
must: not be called.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceTransformFeedbackPropertiesEXT.txt[]
|
||||
|
||||
If the sname:VkPhysicalDeviceTransformFeedbackPropertiesEXT structure is
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2KHR,
|
||||
it is filled with the implementation-dependent limits and properties.
|
||||
included in the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it
|
||||
is filled with the implementation-dependent limits and properties.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceTransformFeedbackPropertiesEXT.txt[]
|
||||
|
||||
--
|
||||
|
||||
|
@ -3825,6 +3843,10 @@ include::../api/structs/VkPhysicalDeviceRayTracingPropertiesNV.txt[]
|
|||
* pname:maxDescriptorSetAccelerationStructures is the maximum number of
|
||||
acceleration structure descriptors that are allowed in a descriptor set.
|
||||
|
||||
If the sname:VkPhysicalDeviceRayTracingPropertiesNV structure is included in
|
||||
the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
|
||||
with the implementation-dependent limits.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceRayTracingPropertiesNV.txt[]
|
||||
--
|
||||
endif::VK_NV_ray_tracing[]
|
||||
|
@ -3992,10 +4014,10 @@ ifdef::VK_EXT_transform_feedback[]
|
|||
| code:uint32_t | pname:maxTransformFeedbackStreamDataSize | `<<VK_EXT_transform_feedback>>`
|
||||
| code:uint32_t | pname:maxTransformFeedbackBufferDataSize | `<<VK_EXT_transform_feedback>>`
|
||||
| code:uint32_t | pname:maxTransformFeedbackBufferDataStride | `<<VK_EXT_transform_feedback>>`
|
||||
| code:VkBool32 | pname:transformFeedbackQueries | `<<VK_EXT_transform_feedback>>`
|
||||
| code:VkBool32 | pname:transformFeedbackStreamsLinesTriangles | `<<VK_EXT_transform_feedback>>`
|
||||
| code:VkBool32 | pname:transformFeedbackRasterizationStreamSelect | `<<VK_EXT_transform_feedback>>`
|
||||
| code:VkBool32 | pname:transformFeedbackDraw | `<<VK_EXT_transform_feedback>>`
|
||||
| basetype:VkBool32 | pname:transformFeedbackQueries | `<<VK_EXT_transform_feedback>>`
|
||||
| basetype:VkBool32 | pname:transformFeedbackStreamsLinesTriangles | `<<VK_EXT_transform_feedback>>`
|
||||
| basetype:VkBool32 | pname:transformFeedbackRasterizationStreamSelect | `<<VK_EXT_transform_feedback>>`
|
||||
| basetype:VkBool32 | pname:transformFeedbackDraw | `<<VK_EXT_transform_feedback>>`
|
||||
endif::VK_EXT_transform_feedback[]
|
||||
|====
|
||||
|
||||
|
@ -4326,12 +4348,12 @@ include::../validity/structs/VkMultisamplePropertiesEXT.txt[]
|
|||
|
||||
If the sample count for which additional multisampling capabilities are
|
||||
requested using fname:vkGetPhysicalDeviceMultisamplePropertiesEXT is set
|
||||
in sname:VkPhysicalDeviceSampleLocationsEXT::
|
||||
in sname:VkPhysicalDeviceSampleLocationsPropertiesEXT::
|
||||
<<features-limits-sampleLocationSampleCounts,
|
||||
pname:sampleLocationSampleCounts>> the pname:width and pname:height members
|
||||
of sname:VkMultisamplePropertiesEXT::pname:maxSampleLocationGridSize must:
|
||||
be greater than or equal to the corresponding members of
|
||||
sname:VkPhysicalDeviceSampleLocationsEXT::
|
||||
sname:VkPhysicalDeviceSampleLocationsPropertiesEXT::
|
||||
<<features-limits-maxSampleLocationGridSize,pname:maxSampleLocationGridSize>>,
|
||||
respectively, otherwise both members must: be `0`.
|
||||
|
||||
|
@ -5687,7 +5709,7 @@ Depth/stencil formats have more relaxed requirements as discussed
|
|||
<<features-formats-depth-stencil,below>>.
|
||||
Each format has an _element size_, the number of bytes used to stored one
|
||||
element or one compressed block, with the value of the element size listed
|
||||
in slink:VkFormat.
|
||||
in elink:VkFormat.
|
||||
|
||||
The representation of non-packed formats is that the first component
|
||||
specified in the name of the format is in the lowest memory addresses and
|
||||
|
@ -6371,8 +6393,8 @@ flink:vkGetPhysicalDeviceProperties::pname:format:
|
|||
--
|
||||
include::../api/flags/VkFormatFeatureFlags.txt[]
|
||||
|
||||
sname:VkFormatFeatureFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkFormatFeatureFlagBits.
|
||||
tname:VkFormatFeatureFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkFormatFeatureFlagBits.
|
||||
--
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
|
||||
|
@ -6505,7 +6527,7 @@ planes_; the first plane contains the green channel and the second plane
|
|||
contains the blue channel and red channel.
|
||||
If the format name does not contain `PLANE`, then the format contains a
|
||||
single plane; for example, ename:VK_FORMAT_R8G8B8A8_UNORM.
|
||||
Some commands, such as flink:vkCmdBufferToImage, do not operate on all
|
||||
Some commands, such as flink:vkCmdCopyBufferToImage, do not operate on all
|
||||
format channels in the image, but instead operate only on the _format
|
||||
planes_ explicitly chosen by the application and operate on each _format
|
||||
plane_ independently.
|
||||
|
@ -6518,7 +6540,7 @@ The union of an image's _memory planes_ is not necessarily contiguous.
|
|||
If an image is <<glossary-linear-resource,linear>>, then the partition is
|
||||
the same for _memory planes_ and for _format planes_.
|
||||
Therefore, if the returned pname:drmFormatModifier is
|
||||
ename:DRM_FORMAT_MOD_LINEAR, then pname:drmFormatModifierPlaneCount must:
|
||||
code:DRM_FORMAT_MOD_LINEAR, then pname:drmFormatModifierPlaneCount must:
|
||||
equal the _format planecount_, and pname:drmFormatModifierTilingFeatures
|
||||
must: be identical to the
|
||||
slink:VkFormatProperties2::pname:linearTilingFeatures returned in the same
|
||||
|
@ -6531,7 +6553,7 @@ planes_.
|
|||
For example, consider an image whose pname:format is
|
||||
ename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, pname:tiling is
|
||||
ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, whose pname:drmFormatModifier
|
||||
is not ename:DRM_FORMAT_MOD_LINEAR, and pname:flags lacks
|
||||
is not code:DRM_FORMAT_MOD_LINEAR, and pname:flags lacks
|
||||
ename:VK_IMAGE_CREATE_DISJOINT_BIT.
|
||||
The image has 3 _format planes_, and commands such
|
||||
flink:vkCmdCopyBufferToImage act on each _format plane_ independently as if
|
||||
|
@ -7691,8 +7713,8 @@ or the equivalent
|
|||
include::../api/flags/VkExternalMemoryHandleTypeFlagsKHR.txt[]
|
||||
endif::VK_KHR_external_memory_capabilities[]
|
||||
|
||||
sname:VkExternalMemoryHandleTypeFlags is a bitmask type for setting a mask
|
||||
of zero or more slink:VkExternalMemoryHandleTypeFlagBits.
|
||||
tname:VkExternalMemoryHandleTypeFlags is a bitmask type for setting a mask
|
||||
of zero or more elink:VkExternalMemoryHandleTypeFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkExternalImageFormatProperties',desc='Structure specifying supported external handle properties',type='structs']
|
||||
|
@ -7735,10 +7757,10 @@ endif::VK_KHR_external_memory_capabilities[]
|
|||
elink:VkExternalMemoryFeatureFlagBits specifying the features of
|
||||
pname:handleType.
|
||||
* pname:exportFromImportedHandleTypes is a bitmask of
|
||||
slink:VkExternalMemoryHandleTypeFlagBits specifying which types of
|
||||
elink:VkExternalMemoryHandleTypeFlagBits specifying which types of
|
||||
imported handle pname:handleType can: be exported from.
|
||||
* pname:compatibleHandleTypes is a bitmask of
|
||||
slink:VkExternalMemoryHandleTypeFlagBits specifying handle types which
|
||||
elink:VkExternalMemoryHandleTypeFlagBits specifying handle types which
|
||||
can: be specified at the same time as pname:handleType when creating an
|
||||
image compatible with external memory.
|
||||
|
||||
|
@ -7776,7 +7798,7 @@ endif::VK_KHR_external_memory_capabilities[]
|
|||
buffer.
|
||||
* ename:VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT specifies that handles
|
||||
of this type can: be exported from Vulkan memory objects.
|
||||
* ename:VK_INTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT specifies that handles
|
||||
* ename:VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT specifies that handles
|
||||
of this type can: be imported as Vulkan memory objects.
|
||||
|
||||
Because their semantics in external APIs roughly align with that of an image
|
||||
|
@ -7811,8 +7833,8 @@ or the equivalent
|
|||
include::../api/flags/VkExternalMemoryFeatureFlagsKHR.txt[]
|
||||
endif::VK_KHR_external_memory_capabilities[]
|
||||
|
||||
sname:VkExternalMemoryFeatureFlags is a bitmask type for setting a mask of
|
||||
zero or more slink:VkExternalMemoryFeatureFlagBits.
|
||||
tname:VkExternalMemoryFeatureFlags is a bitmask type for setting a mask of
|
||||
zero or more elink:VkExternalMemoryFeatureFlagBits.
|
||||
--
|
||||
|
||||
endif::VK_VERSION_1_1,VK_KHR_external_memory_capabilities[]
|
||||
|
@ -7923,7 +7945,7 @@ To obtain optimal Android hardware buffer usage flags for specific image
|
|||
creation parameters, attach an instance of
|
||||
sname:VkAndroidHardwareBufferUsageANDROID to the pname:pNext chain of a
|
||||
slink:VkImageFormatProperties2 structure passed to
|
||||
slink:vkGetPhysicalDeviceImageFormatProperties2.
|
||||
flink:vkGetPhysicalDeviceImageFormatProperties2.
|
||||
This structure is defined as:
|
||||
|
||||
include::../api/structs/VkAndroidHardwareBufferUsageANDROID.txt[]
|
||||
|
@ -8315,8 +8337,8 @@ or the equivalent
|
|||
include::../api/flags/VkExternalSemaphoreHandleTypeFlagsKHR.txt[]
|
||||
endif::VK_KHR_external_semaphore_capabilities[]
|
||||
|
||||
sname:VkExternalSemaphoreHandleTypeFlags is a bitmask type for setting a
|
||||
mask of zero or more slink:VkExternalSemaphoreHandleTypeFlagBits.
|
||||
tname:VkExternalSemaphoreHandleTypeFlags is a bitmask type for setting a
|
||||
mask of zero or more elink:VkExternalSemaphoreHandleTypeFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkExternalSemaphoreProperties',desc='Structure describing supported external semaphore handle features',type='structs']
|
||||
|
@ -8382,8 +8404,8 @@ or the equivalent
|
|||
include::../api/flags/VkExternalSemaphoreFeatureFlagsKHR.txt[]
|
||||
endif::VK_KHR_external_semaphore_capabilities[]
|
||||
|
||||
sname:VkExternalSemaphoreFeatureFlags is a bitmask type for setting a mask
|
||||
of zero or more slink:VkExternalSemaphoreFeatureFlagBits.
|
||||
tname:VkExternalSemaphoreFeatureFlags is a bitmask type for setting a mask
|
||||
of zero or more elink:VkExternalSemaphoreFeatureFlagBits.
|
||||
--
|
||||
|
||||
endif::VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities[]
|
||||
|
@ -8535,8 +8557,8 @@ or the equivalent
|
|||
include::../api/flags/VkExternalFenceHandleTypeFlagsKHR.txt[]
|
||||
endif::VK_KHR_external_fence_capabilities[]
|
||||
|
||||
sname:VkExternalFenceHandleTypeFlags is a bitmask type for setting a mask of
|
||||
zero or more slink:VkExternalFenceHandleTypeFlagBits.
|
||||
tname:VkExternalFenceHandleTypeFlags is a bitmask type for setting a mask of
|
||||
zero or more elink:VkExternalFenceHandleTypeFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkExternalFenceProperties',desc='Structure describing supported external fence handle features',type='structs']
|
||||
|
@ -8600,8 +8622,8 @@ or the equivalent
|
|||
include::../api/flags/VkExternalFenceFeatureFlagsKHR.txt[]
|
||||
endif::VK_KHR_external_fence_capabilities[]
|
||||
|
||||
sname:VkExternalFenceFeatureFlags is a bitmask type for setting a mask of
|
||||
zero or more slink:VkExternalFenceFeatureFlagBits.
|
||||
tname:VkExternalFenceFeatureFlags is a bitmask type for setting a mask of
|
||||
zero or more elink:VkExternalFenceFeatureFlagBits.
|
||||
--
|
||||
|
||||
endif::VK_VERSION_1_1,VK_KHR_external_fence_capabilities[]
|
||||
|
|
|
@ -104,7 +104,7 @@ include::../validity/structs/VkPipelineDiscardRectangleStateCreateInfoEXT.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineDiscardRectangleStateCreateFlagsEXT.txt[]
|
||||
|
||||
sname:VkPipelineDiscardRectangleStateCreateFlagsEXT is a bitmask type for
|
||||
tname:VkPipelineDiscardRectangleStateCreateFlagsEXT is a bitmask type for
|
||||
setting a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -725,7 +725,7 @@ include::../validity/structs/VkPipelineDepthStencilStateCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineDepthStencilStateCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineDepthStencilStateCreateFlags is a bitmask type for setting a
|
||||
tname:VkPipelineDepthStencilStateCreateFlags is a bitmask type for setting a
|
||||
mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -907,8 +907,8 @@ include::../api/enums/VkStencilFaceFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkStencilFaceFlags.txt[]
|
||||
|
||||
sname:VkStencilFaceFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkStencilFaceFlagBits.
|
||||
tname:VkStencilFaceFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkStencilFaceFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='vkCmdSetStencilWriteMask',desc='Set the stencil write mask dynamic state',type='protos']
|
||||
|
@ -1252,7 +1252,7 @@ include::../validity/structs/VkPipelineCoverageToColorStateCreateInfoNV.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineCoverageToColorStateCreateFlagsNV.txt[]
|
||||
|
||||
sname:VkPipelineCoverageToColorStateCreateFlagsNV is a bitmask type for
|
||||
tname:VkPipelineCoverageToColorStateCreateFlagsNV is a bitmask type for
|
||||
setting a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -1378,7 +1378,7 @@ include::../validity/structs/VkPipelineCoverageModulationStateCreateInfoNV.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineCoverageModulationStateCreateFlagsNV.txt[]
|
||||
|
||||
sname:VkPipelineCoverageModulationStateCreateFlagsNV is a bitmask type for
|
||||
tname:VkPipelineCoverageModulationStateCreateFlagsNV is a bitmask type for
|
||||
setting a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ include::../validity/structs/VkPipelineColorBlendStateCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineColorBlendStateCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineColorBlendStateCreateFlags is a bitmask type for setting a
|
||||
tname:VkPipelineColorBlendStateCreateFlags is a bitmask type for setting a
|
||||
mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -545,6 +545,6 @@ enabled.
|
|||
--
|
||||
include::../api/flags/VkColorComponentFlags.txt[]
|
||||
|
||||
sname:VkColorComponentFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkColorComponentFlagBits.
|
||||
tname:VkColorComponentFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkColorComponentFlagBits.
|
||||
--
|
||||
|
|
|
@ -333,7 +333,7 @@ endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
|
|||
* sname:VkDescriptorSet
|
||||
ifdef::VK_NVX_device_generated_commands[]
|
||||
* sname:VkObjectTableNVX
|
||||
* sname:VkIndirectCommandsLayout
|
||||
* sname:VkIndirectCommandsLayoutNVX
|
||||
endif::VK_NVX_device_generated_commands[]
|
||||
|
||||
Destroying these objects will move any command buffers that are in the
|
||||
|
@ -904,12 +904,12 @@ include::../api/enums/VkStructureType.txt[]
|
|||
|
||||
Each value corresponds to a particular structure with a pname:sType member
|
||||
with a matching name.
|
||||
As a general rule, the name of each ename:VkStructureType value is obtained
|
||||
As a general rule, the name of each elink:VkStructureType value is obtained
|
||||
by taking the name of the structure, stripping the leading etext:Vk,
|
||||
prefixing each capital letter with etext:_, converting the entire resulting
|
||||
string to upper case, and prefixing it with etext:VK_STRUCTURE_TYPE_.
|
||||
For example, structures of type sname:VkImageCreateInfo correspond to a
|
||||
ename:VkStructureType of ename:VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, and thus
|
||||
elink:VkStructureType of ename:VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, and thus
|
||||
its pname:sType member must: equal that when it is passed to the API.
|
||||
|
||||
The values ename:VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO and
|
||||
|
|
|
@ -317,7 +317,7 @@ include::../validity/structs/VkPipelineVertexInputStateCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineVertexInputStateCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineVertexInputStateCreateFlags is a bitmask type for setting a
|
||||
tname:VkPipelineVertexInputStateCreateFlags is a bitmask type for setting a
|
||||
mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ Points::
|
|||
Geometry shaders that operate on points use an code:OpExecutionMode
|
||||
instruction specifying the code:InputPoints input mode.
|
||||
Such a shader is valid only when the pipeline primitive topology is
|
||||
code:VK_PRIMITIVE_TOPOLOGY_POINT_LIST (if tessellation is not in use) or if
|
||||
ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST (if tessellation is not in use) or if
|
||||
tessellation is in use and the tessellation evaluation shader uses
|
||||
code:PointMode.
|
||||
There is only a single input vertex available for each geometry shader
|
||||
|
@ -44,8 +44,8 @@ Lines::
|
|||
|
||||
Geometry shaders that operate on line segments are generated by including an
|
||||
code:OpExecutionMode instruction with the code:InputLines mode.
|
||||
Such a shader is valid only for the code:VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
|
||||
and code:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP primitive topologies (if
|
||||
Such a shader is valid only for the ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
|
||||
and ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP primitive topologies (if
|
||||
tessellation is not in use) or if tessellation is in use and the
|
||||
tessellation mode is code:Isolines.
|
||||
There are two input vertices available for each geometry shader invocation.
|
||||
|
@ -58,8 +58,8 @@ Geometry shaders that operate on line segments with adjacent vertices are
|
|||
generated by including an code:OpExecutionMode instruction with the
|
||||
code:InputLinesAdjacency mode.
|
||||
Such a shader is valid only for the
|
||||
code:VK_PRIMITIVE_TOPOLOGY_LINES_WITH_ADJACENCY and
|
||||
code:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY primitive topologies
|
||||
ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY and
|
||||
ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY primitive topologies
|
||||
and must: not be used when tessellation is in use.
|
||||
+
|
||||
In this mode, there are four vertices available for each geometry shader
|
||||
|
@ -75,9 +75,9 @@ Triangles::
|
|||
Geometry shaders that operate on triangles are created by including an
|
||||
code:OpExecutionMode instruction with the code:Triangles mode.
|
||||
Such a shader is valid when the pipeline topology is
|
||||
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
|
||||
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, or
|
||||
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN (if tessellation is not in use) or
|
||||
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
|
||||
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, or
|
||||
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN (if tessellation is not in use) or
|
||||
when tessellation is in use and the tessellation mode is code:Triangles or
|
||||
code:Quads.
|
||||
+
|
||||
|
@ -92,8 +92,8 @@ Geometry shaders that operate on triangles with adjacent vertices are
|
|||
created by including an code:OpExecutionMode instruction with the
|
||||
code:InputTrianglesAdjacency mode.
|
||||
Such a shader is valid when the pipeline topology is
|
||||
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLES_WITH_ADJACENCY or
|
||||
code:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, and must: not be
|
||||
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or
|
||||
ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, and must: not be
|
||||
used when tessellation is in use.
|
||||
+
|
||||
In this mode, there are six vertices available for each geometry shader
|
||||
|
|
|
@ -270,7 +270,7 @@ include::../validity/structs/VkInstanceCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkInstanceCreateFlags.txt[]
|
||||
|
||||
sname:VkInstanceCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkInstanceCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -582,7 +582,7 @@ ifdef::VK_EXT_inline_uniform_block[]
|
|||
Variables identified with the code:Uniform storage class can: also be used
|
||||
to access transparent descriptor set backed resources when the variable is
|
||||
assigned to a descriptor set layout binding with a pname:descriptorType of
|
||||
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK.
|
||||
ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT.
|
||||
In this case the variable must: be typed as code:OpTypeStruct and cannot: be
|
||||
aggregated into arrays of that type.
|
||||
Further, the code:Offset decoration for any member of such a variable must:
|
||||
|
@ -692,7 +692,7 @@ ifdef::VK_EXT_inline_uniform_block[]
|
|||
| inline uniform block | ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
|
||||
endif::VK_EXT_inline_uniform_block[]
|
||||
ifdef::VK_NV_ray_tracing[]
|
||||
| acceleration structure | ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE
|
||||
| acceleration structure | ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
|
||||
endif::VK_NV_ray_tracing[]
|
||||
|====
|
||||
|
||||
|
@ -835,7 +835,7 @@ statically used.
|
|||
|
||||
A noteworthy example of using multiple statically-used shader variables
|
||||
sharing the same descriptor set and binding values is a descriptor of type
|
||||
code:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER that has multiple
|
||||
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER that has multiple
|
||||
corresponding shader variables in the code:UniformConstant storage class,
|
||||
where some could be code:OpTypeImage, some could be code:OpTypeSampler
|
||||
(code:Sampled=1), and some could be code:OpTypeSampledImage.
|
||||
|
|
|
@ -728,8 +728,8 @@ endif::VK_KHR_device_group_creation[]
|
|||
--
|
||||
include::../api/flags/VkMemoryHeapFlags.txt[]
|
||||
|
||||
sname:VkMemoryHeapFlags is a bitmask type for setting a mask of zero or more
|
||||
slink:VkMemoryHeapFlagBits.
|
||||
tname:VkMemoryHeapFlags is a bitmask type for setting a mask of zero or more
|
||||
elink:VkMemoryHeapFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkMemoryType',desc='Structure specifying memory type',type='structs']
|
||||
|
@ -795,8 +795,8 @@ endif::VK_VERSION_1_1[]
|
|||
--
|
||||
include::../api/flags/VkMemoryPropertyFlags.txt[]
|
||||
|
||||
sname:VkMemoryPropertyFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkMemoryPropertyFlagBits.
|
||||
tname:VkMemoryPropertyFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkMemoryPropertyFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkDeviceMemory',desc='Opaque handle to a device memory object',type='handles']
|
||||
|
@ -885,7 +885,7 @@ In such cases, allocated memory is tracked on a per-device and per-heap
|
|||
basis.
|
||||
Some platforms allow overallocation into other heaps.
|
||||
The overallocation behavior can: be specified through the
|
||||
slink:VK_AMD_memory_overallocation_behavior extension.
|
||||
`<<VK_AMD_memory_overallocation_behavior>>` extension.
|
||||
|
||||
endif::VK_AMD_memory_overallocation_behavior[]
|
||||
|
||||
|
@ -2283,8 +2283,8 @@ or the equivalent
|
|||
include::../api/flags/VkMemoryAllocateFlagsKHR.txt[]
|
||||
endif::VK_KHR_device_group[]
|
||||
|
||||
sname:VkMemoryAllocateFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkMemoryAllocateFlagBits.
|
||||
tname:VkMemoryAllocateFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkMemoryAllocateFlagBits.
|
||||
--
|
||||
|
||||
endif::VK_VERSION_1_1,VK_KHR_device_group[]
|
||||
|
@ -2387,7 +2387,7 @@ In such cases, fname:vkMapMemory must: return
|
|||
ename:VK_ERROR_MEMORY_MAP_FAILED.
|
||||
The application can: improve the likelihood of success by reducing the size
|
||||
of the mapped range and/or removing unneeded mappings using
|
||||
fname:VkUnmapMemory.
|
||||
flink:vkUnmapMemory.
|
||||
====
|
||||
|
||||
[[memory-device-hostaccess-hazards]]
|
||||
|
@ -2448,7 +2448,7 @@ include::../validity/protos/vkMapMemory.txt[]
|
|||
--
|
||||
include::../api/flags/VkMemoryMapFlags.txt[]
|
||||
|
||||
sname:VkMemoryMapFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkMemoryMapFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -2985,7 +2985,7 @@ ifdef::VK_KHR_image_format_list[]
|
|||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
When using ename:VK_IMAGE_USAGE_MUTABLE_FORMAT_BIT with Android hardware
|
||||
When using ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT with Android hardware
|
||||
buffer images, applications should: use slink:VkImageFormatListCreateInfoKHR
|
||||
to inform the implementation which view formats will be used with the image.
|
||||
For some common sets of format, this allows some implementations to provide
|
||||
|
@ -3126,8 +3126,8 @@ or the equivalent
|
|||
include::../api/flags/VkPeerMemoryFeatureFlagsKHR.txt[]
|
||||
endif::VK_KHR_device_group[]
|
||||
|
||||
sname:VkPeerMemoryFeatureFlags is a bitmask type for setting a mask of zero
|
||||
or more slink:VkPeerMemoryFeatureFlagBits.
|
||||
tname:VkPeerMemoryFeatureFlags is a bitmask type for setting a mask of zero
|
||||
or more elink:VkPeerMemoryFeatureFlagBits.
|
||||
--
|
||||
|
||||
endif::VK_VERSION_1_1,VK_KHR_device_group[]
|
||||
|
|
|
@ -392,7 +392,7 @@ include::../validity/structs/VkPipelineShaderStageCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineShaderStageCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineShaderStageCreateFlags is a bitmask type for setting a mask,
|
||||
tname:VkPipelineShaderStageCreateFlags is a bitmask type for setting a mask,
|
||||
but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -448,8 +448,8 @@ Thus, it may not have the desired effect in all cases.
|
|||
--
|
||||
include::../api/flags/VkShaderStageFlags.txt[]
|
||||
|
||||
sname:VkShaderStageFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkShaderStageFlagBits.
|
||||
tname:VkShaderStageFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkShaderStageFlagBits.
|
||||
--
|
||||
|
||||
|
||||
|
@ -624,7 +624,7 @@ ifdef::VK_NV_mesh_shader[]
|
|||
ename:VK_SHADER_STAGE_VERTEX_BIT,
|
||||
ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
|
||||
ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or
|
||||
ename:VK_SHADER_STAGE_GEOEMETRY_BIT).
|
||||
ename:VK_SHADER_STAGE_GEOMETRY_BIT).
|
||||
* [[VUID-VkGraphicsPipelineCreateInfo-stage-02096]]
|
||||
The pname:stage member of one element of pname:pStages must: be either
|
||||
ename:VK_SHADER_STAGE_VERTEX_BIT or ename:VK_SHADER_STAGE_MESH_BIT_NV.
|
||||
|
@ -1036,8 +1036,8 @@ information.
|
|||
--
|
||||
include::../api/flags/VkPipelineCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineCreateFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkPipelineCreateFlagBits.
|
||||
tname:VkPipelineCreateFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkPipelineCreateFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkPipelineDynamicStateCreateInfo',desc='Structure specifying parameters of a newly created pipeline dynamic state',type='structs']
|
||||
|
@ -1069,7 +1069,7 @@ include::../validity/structs/VkPipelineDynamicStateCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineDynamicStateCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineDynamicStateCreateFlags is a bitmask type for setting a
|
||||
tname:VkPipelineDynamicStateCreateFlags is a bitmask type for setting a
|
||||
mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -1144,14 +1144,14 @@ include::../api/enums/VkDynamicState.txt[]
|
|||
ifdef::VK_NV_clip_space_w_scaling[]
|
||||
* ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV specifies that the
|
||||
pname:pViewportScalings state in
|
||||
sname:VkPipelineViewportWScalingStateCreateInfoNV will be ignored and
|
||||
slink:VkPipelineViewportWScalingStateCreateInfoNV will be ignored and
|
||||
must: be set dynamically with flink:vkCmdSetViewportWScalingNV before
|
||||
any draws are performed with a pipeline state with
|
||||
sname:VkPipelineViewportWScalingStateCreateInfo member
|
||||
slink:VkPipelineViewportWScalingStateCreateInfoNV member
|
||||
pname:viewportScalingEnable set to ename:VK_TRUE
|
||||
endif::VK_NV_clip_space_w_scaling[]
|
||||
ifdef::VK_EXT_discard_rectangles[]
|
||||
* ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLES_EXT specifies that the
|
||||
* ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT specifies that the
|
||||
pname:pDiscardRectangles state in
|
||||
slink:VkPipelineDiscardRectangleStateCreateInfoEXT will be ignored and
|
||||
must: be set dynamically with flink:vkCmdSetDiscardRectangleEXT before
|
||||
|
@ -1471,7 +1471,7 @@ include::../validity/structs/VkPipelineCacheCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineCacheCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineCacheCreateFlags is a bitmask type for setting a mask, but
|
||||
tname:VkPipelineCacheCreateFlags is a bitmask type for setting a mask, but
|
||||
is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ include::../validity/structs/VkPipelineRasterizationStateCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineRasterizationStateCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineRasterizationStateCreateFlags is a bitmask type for setting
|
||||
tname:VkPipelineRasterizationStateCreateFlags is a bitmask type for setting
|
||||
a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -168,7 +168,7 @@ include::../validity/structs/VkPipelineMultisampleStateCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineMultisampleStateCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineMultisampleStateCreateFlags is a bitmask type for setting a
|
||||
tname:VkPipelineMultisampleStateCreateFlags is a bitmask type for setting a
|
||||
mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -314,7 +314,7 @@ include::../validity/structs/VkPipelineRasterizationStateStreamCreateInfoEXT.txt
|
|||
--
|
||||
include::../api/flags/VkPipelineRasterizationStateStreamCreateFlagsEXT.txt[]
|
||||
|
||||
sname:VkPipelineRasterizationStateStreamCreateFlagsEXT is a bitmask type for
|
||||
tname:VkPipelineRasterizationStateStreamCreateFlagsEXT is a bitmask type for
|
||||
setting a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -784,7 +784,7 @@ include::../api/protos/vkCmdBindShadingRateImageNV.txt[]
|
|||
been created with ename:VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV set
|
||||
* [[VUID-vkCmdBindShadingRateImageNV-imageView-02062]]
|
||||
If pname:imageView is not dlink:VK_NULL_HANDLE, pname:imageLayout must:
|
||||
match the actual sname:VkImageLayout of each subresource accessible from
|
||||
match the actual elink:VkImageLayout of each subresource accessible from
|
||||
pname:imageView at the time the subresource is accessed.
|
||||
* [[VUID-vkCmdBindShadingRateImageNV-imageLayout-02063]]
|
||||
If pname:imageView is not dlink:VK_NULL_HANDLE, pname:imageLayout must:
|
||||
|
@ -799,15 +799,16 @@ When the shading rate image is enabled in the current pipeline, rasterizing
|
|||
a primitive covering the pixel with coordinates (_x_,_y_) will fetch a
|
||||
shading rate index value from the shading rate image bound by
|
||||
fname:vkCmdBindShadingRateImageNV.
|
||||
If the shading rate image view has a type of ename:VK_IMAGE_VIEW_2D, the
|
||||
lookup will use texel coordinates (_u_,_v_) where latexmath:[u = \lfloor
|
||||
If the shading rate image view has a type of ename:VK_IMAGE_VIEW_TYPE_2D,
|
||||
the lookup will use texel coordinates (_u_,_v_) where latexmath:[u = \lfloor
|
||||
\frac{x}{twidth} \rfloor], latexmath:[v = \lfloor \frac{y}{theight}
|
||||
\rfloor], and latexmath:[twidth] and latexmath:[theight] are the width and
|
||||
height of the implementation-dependent
|
||||
<<features-limits-shading-rate-texel-size, shading rate texel size>>.
|
||||
If the shading rate image view has a type of ename:VK_IMAGE_VIEW_2D_ARRAY,
|
||||
the lookup will use texel coordinates (_u_,_v_) to extract a texel from the
|
||||
layer _l_, where _l_ is the layer of the framebuffer being rendered to.
|
||||
If the shading rate image view has a type of
|
||||
ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY, the lookup will use texel coordinates
|
||||
(_u_,_v_) to extract a texel from the layer _l_, where _l_ is the layer of
|
||||
the framebuffer being rendered to.
|
||||
If _l_ is greater than or equal to the number of layers in the image view,
|
||||
layer zero will be used.
|
||||
|
||||
|
@ -885,7 +886,7 @@ include::../api/structs/VkShadingRatePaletteNV.txt[]
|
|||
* pname:shadingRatePaletteEntryCount specifies the number of entries in
|
||||
the shading rate image palette.
|
||||
* pname:pShadingRatePaletteEntries is a pointer to an array of
|
||||
slink:VkShadingRatePaletteEntryNV enums defining the shading rate for
|
||||
elink:VkShadingRatePaletteEntryNV enums defining the shading rate for
|
||||
each palette entry.
|
||||
|
||||
.Valid Usage
|
||||
|
@ -917,7 +918,7 @@ The following table indicates the width and height (in pixels) of each
|
|||
fragment generated using the indicated shading rate, as well as the maximum
|
||||
number of fragment shader invocations launched for each fragment.
|
||||
When processing regions of a primitive that have a shading rate of
|
||||
ename:VK_SHADING_RATE_PALETTE_ENTRY_NO_PIXELS_NV, no fragments will be
|
||||
ename:VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, no fragments will be
|
||||
generated in that region.
|
||||
|
||||
[options="header"]
|
||||
|
@ -1155,7 +1156,7 @@ corresponds to the coverage sample numbered _i_ in the multi-pixel fragment.
|
|||
* [[VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074]]
|
||||
pname:sampleCount must: correspond to a sample count enumerated in
|
||||
elink:VkSampleCountFlags whose corresponding bit is set in
|
||||
ename:VkPhysicalDeviceLimits::pname:framebufferNoAttachmentsSampleCounts.
|
||||
slink:VkPhysicalDeviceLimits::pname:framebufferNoAttachmentsSampleCounts.
|
||||
* [[VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075]]
|
||||
pname:sampleLocationCount must: be equal to the product of
|
||||
pname:sampleCount, the fragment width for pname:shadingRate, and the
|
||||
|
@ -1346,11 +1347,11 @@ vertex index value, the value obtained is undefined.
|
|||
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP (even) | i | i+1 | i+2
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP (odd) | i | i+2 | i+1
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN | i+1 | i+2 | 0
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_ADJACENCY | 4i+1 | 4i+2 | -
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_ADJACENCY | i+1 | i+2 | -
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLES_ADJACENCY | 6i | 6i+2 | 6i+4
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJACENCY (even) | 2i | 2i+2 | 2i+4
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJACENCY (odd) | 2i | 2i+4 | 2i+2
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY | 4i+1 | 4i+2 | -
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY | i+1 | i+2 | -
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY | 6i | 6i+2 | 6i+4
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY (even) | 2i | 2i+2 | 2i+4
|
||||
| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY (odd) | 2i | 2i+4 | 2i+2
|
||||
|======
|
||||
|
||||
When geometry
|
||||
|
@ -1702,8 +1703,8 @@ been discarded.
|
|||
--
|
||||
include::../api/flags/VkCullModeFlags.txt[]
|
||||
|
||||
sname:VkCullModeFlags is a bitmask type for setting a mask of zero or more
|
||||
slink:VkCullModeFlagBits.
|
||||
tname:VkCullModeFlags is a bitmask type for setting a mask of zero or more
|
||||
elink:VkCullModeFlagBits.
|
||||
--
|
||||
|
||||
The rule for determining which fragments are produced by polygon
|
||||
|
@ -2070,7 +2071,7 @@ include::../validity/structs/VkPipelineRasterizationConservativeStateCreateInfoE
|
|||
--
|
||||
include::../api/flags/VkPipelineRasterizationConservativeStateCreateFlagsEXT.txt[]
|
||||
|
||||
sname:VkPipelineRasterizationConservativeStateCreateFlagsEXT is a bitmask
|
||||
tname:VkPipelineRasterizationConservativeStateCreateFlagsEXT is a bitmask
|
||||
type for setting a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -94,7 +94,7 @@ include::../validity/structs/VkQueryPoolCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkQueryPoolCreateFlags.txt[]
|
||||
|
||||
sname:VkQueryPoolCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkQueryPoolCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -466,8 +466,8 @@ include::../api/enums/VkQueryControlFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkQueryControlFlags.txt[]
|
||||
|
||||
sname:VkQueryControlFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkQueryControlFlagBits.
|
||||
tname:VkQueryControlFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkQueryControlFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='vkCmdEndQuery',desc='Ends a query',type='protos']
|
||||
|
@ -772,8 +772,8 @@ include::../api/enums/VkQueryResultFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkQueryResultFlags.txt[]
|
||||
|
||||
sname:VkQueryResultFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkQueryResultFlagBits.
|
||||
tname:VkQueryResultFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkQueryResultFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='vkCmdCopyQueryPoolResults',desc='Copy the results of queries in a query pool to a buffer object',type='protos']
|
||||
|
@ -1083,8 +1083,8 @@ fname:vkGetQueryPoolResults).
|
|||
--
|
||||
include::../api/flags/VkQueryPipelineStatisticFlags.txt[]
|
||||
|
||||
sname:VkQueryPipelineStatisticFlags is a bitmask type for setting a mask of
|
||||
zero or more slink:VkQueryPipelineStatisticFlagBits.
|
||||
tname:VkQueryPipelineStatisticFlags is a bitmask type for setting a mask of
|
||||
zero or more elink:VkQueryPipelineStatisticFlagBits.
|
||||
--
|
||||
|
||||
|
||||
|
@ -1241,7 +1241,7 @@ buffer.
|
|||
A transform feedback query is begun and ended by calling
|
||||
fname:vkCmdBeginQuery and fname:vkCmdEndQuery, respectively to query for
|
||||
vertex stream zero.
|
||||
fname:vkCmdBeginQueryIndexedEXT and fname:vkCmdEndQueryIndexexEXT can: be
|
||||
fname:vkCmdBeginQueryIndexedEXT and fname:vkCmdEndQueryIndexedEXT can: be
|
||||
used to begin and end transform feedback queries for any supported vertex
|
||||
stream.
|
||||
When a transform feedback query begins, the count of primitives written and
|
||||
|
|
|
@ -258,7 +258,7 @@ include::../validity/structs/VkRenderPassCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkRenderPassCreateFlags.txt[]
|
||||
|
||||
sname:VkRenderPassCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkRenderPassCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -629,8 +629,8 @@ include::../api/enums/VkAttachmentDescriptionFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkAttachmentDescriptionFlags.txt[]
|
||||
|
||||
sname:VkAttachmentDescriptionFlags is a bitmask type for setting a mask of
|
||||
zero or more slink:VkAttachmentDescriptionFlagBits.
|
||||
tname:VkAttachmentDescriptionFlags is a bitmask type for setting a mask of
|
||||
zero or more elink:VkAttachmentDescriptionFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkAttachmentLoadOp',desc='Specify how contents of an attachment are treated at the beginning of a subpass',type='enums']
|
||||
|
@ -939,8 +939,8 @@ endif::VK_NVX_multiview_per_view_attributes[]
|
|||
--
|
||||
include::../api/flags/VkSubpassDescriptionFlags.txt[]
|
||||
|
||||
sname:VkSubpassDescriptionFlags is a bitmask type for setting a mask of zero
|
||||
or more slink:VkSubpassDescriptionFlagBits.
|
||||
tname:VkSubpassDescriptionFlags is a bitmask type for setting a mask of zero
|
||||
or more elink:VkSubpassDescriptionFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkAttachmentReference',desc='Structure specifying an attachment reference',type='structs']
|
||||
|
@ -1583,7 +1583,7 @@ include::../api/structs/VkAttachmentDescription2KHR.txt[]
|
|||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:flags is a bitmask of elink:VkAttachmentDescription2KHRFlagBits
|
||||
* pname:flags is a bitmask of elink:VkAttachmentDescriptionFlagBits
|
||||
specifying additional properties of the attachment.
|
||||
* pname:format is a elink:VkFormat value specifying the format of the
|
||||
image that will be used for the attachment.
|
||||
|
@ -2072,7 +2072,7 @@ rendering area, and the pname:rasterizationSamples from each pipeline's
|
|||
slink:VkPipelineMultisampleStateCreateInfo to define the number of samples
|
||||
used in rasterization; however, if
|
||||
slink:VkPhysicalDeviceFeatures::pname:variableMultisampleRate is
|
||||
code:VK_FALSE, then all pipelines to be bound with a given zero-attachment
|
||||
ename:VK_FALSE, then all pipelines to be bound with a given zero-attachment
|
||||
subpass must: have the same value for
|
||||
slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples.
|
||||
|
||||
|
@ -2139,7 +2139,7 @@ include::../validity/structs/VkFramebufferCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkFramebufferCreateFlags.txt[]
|
||||
|
||||
sname:VkFramebufferCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkFramebufferCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -212,7 +212,7 @@ include::../api/enums/VkBufferUsageFlagBits.txt[]
|
|||
fname:vkCmdDrawIndirect, fname:vkCmdDrawIndexedIndirect,
|
||||
ifdef::VK_NV_mesh_shader[]
|
||||
fname:vkCmdDrawMeshTasksIndirectNV,
|
||||
fname:vkCmdDrawMeshTasksIndirectCount,
|
||||
fname:vkCmdDrawMeshTasksIndirectCountNV,
|
||||
endif::VK_NV_mesh_shader[]
|
||||
or fname:vkCmdDispatchIndirect.
|
||||
ifdef::VK_NVX_device_generated_commands[]
|
||||
|
@ -245,8 +245,8 @@ endif::VK_NV_ray_tracing[]
|
|||
--
|
||||
include::../api/flags/VkBufferUsageFlags.txt[]
|
||||
|
||||
sname:VkBufferUsageFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkBufferUsageFlagBits.
|
||||
tname:VkBufferUsageFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkBufferUsageFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkBufferCreateFlagBits',desc='Bitmask specifying additional parameters of a buffer',type='enums']
|
||||
|
@ -284,8 +284,8 @@ memory features supported on a device.
|
|||
--
|
||||
include::../api/flags/VkBufferCreateFlags.txt[]
|
||||
|
||||
sname:VkBufferCreateFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkBufferCreateFlagBits.
|
||||
tname:VkBufferCreateFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkBufferCreateFlagBits.
|
||||
--
|
||||
|
||||
ifdef::VK_NV_dedicated_allocation[]
|
||||
|
@ -485,7 +485,7 @@ include::../validity/structs/VkBufferViewCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkBufferViewCreateFlags.txt[]
|
||||
|
||||
sname:VkBufferViewCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkBufferViewCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -809,7 +809,7 @@ ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
|
|||
slink:VkPhysicalDeviceLimits::maxImageArrayLayers.
|
||||
*** Each component of sname:VkImageFormatProperties::pname:maxExtent is
|
||||
slink:VkPhysicalDeviceLimits::maxImageDimension2D.
|
||||
*** sname:VkImageFormatPropertoies::pname:sampleCounts contains exactly
|
||||
*** sname:VkImageFormatProperties::pname:sampleCounts contains exactly
|
||||
ename:VK_SAMPLE_COUNT_1_BIT.
|
||||
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
|
||||
endif::VK_VERSION_1_1,VK_KHR_external_memory[]
|
||||
|
@ -1619,8 +1619,8 @@ endif::VK_NV_shading_rate_image[]
|
|||
--
|
||||
include::../api/flags/VkImageUsageFlags.txt[]
|
||||
|
||||
sname:VkImageUsageFlags is a bitmask type for setting a mask of zero or more
|
||||
slink:VkImageUsageFlagBits.
|
||||
tname:VkImageUsageFlags is a bitmask type for setting a mask of zero or more
|
||||
elink:VkImageUsageFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkImageCreateFlagBits',desc='Bitmask specifying additional parameters of an image',type='enums']
|
||||
|
@ -1733,8 +1733,8 @@ details.
|
|||
--
|
||||
include::../api/flags/VkImageCreateFlags.txt[]
|
||||
|
||||
sname:VkImageCreateFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkImageCreateFlagBits.
|
||||
tname:VkImageCreateFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkImageCreateFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkImageType',desc='Specifies the type of an image object',type='enums']
|
||||
|
@ -1772,7 +1772,7 @@ ifdef::VK_EXT_image_drm_format_modifier[]
|
|||
The modifier is specified at image creation with
|
||||
slink:VkImageDrmFormatModifierListCreateInfoEXT or
|
||||
slink:VkImageDrmFormatModifierExplicitCreateInfoEXT, and can: be queried
|
||||
with slink:vkGetImageDrmFormatModifierPropertiesEXT.
|
||||
with flink:vkGetImageDrmFormatModifierPropertiesEXT.
|
||||
endif::VK_EXT_image_drm_format_modifier[]
|
||||
--
|
||||
|
||||
|
@ -2114,6 +2114,7 @@ include::../api/protos/vkDestroyImage.txt[]
|
|||
include::../validity/protos/vkDestroyImage.txt[]
|
||||
--
|
||||
|
||||
|
||||
[[resources-image-format-features]]
|
||||
=== Image Format Features
|
||||
|
||||
|
@ -2156,13 +2157,14 @@ ifdef::VK_EXT_image_drm_format_modifier[]
|
|||
be the array found by calling
|
||||
flink:vkGetPhysicalDeviceFormatProperties2 on the same pname:format as
|
||||
slink:VkImageCreateInfo::pname:format.
|
||||
** Let slink:VkDrmModifierPropertiesEXT be the array element whose
|
||||
** Let `VkDrmFormatModifierPropertiesEXT prop` be the array element whose
|
||||
pname:drmFormatModifier member is the value of the image's DRM format
|
||||
modifier.
|
||||
** Then the image set of _format features_ is the value of
|
||||
slink:VkDrmFormatModifierPropertiesEXT::drmFormatModifierTilingFeatures.
|
||||
`prop`::pname:drmFormatModifierTilingFeatures.
|
||||
endif::VK_EXT_image_drm_format_modifier[]
|
||||
|
||||
|
||||
ifdef::VK_NV_corner_sampled_image[]
|
||||
[[resources-images-corner-sampled]]
|
||||
=== Corner-Sampled Images
|
||||
|
@ -3100,7 +3102,7 @@ include::../validity/structs/VkImageViewCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkImageViewCreateFlags.txt[]
|
||||
|
||||
sname:VkImageViewCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkImageViewCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -3295,8 +3297,8 @@ include::../api/enums/VkImageAspectFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkImageAspectFlags.txt[]
|
||||
|
||||
sname:VkImageAspectFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkImageAspectFlagBits.
|
||||
tname:VkImageAspectFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkImageAspectFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkComponentMapping',desc='Structure specifying a color component mapping',type='structs']
|
||||
|
@ -3502,11 +3504,11 @@ ifdef::VK_EXT_image_drm_format_modifier[]
|
|||
be the array found by calling
|
||||
flink:vkGetPhysicalDeviceFormatProperties2 on the same pname:format as
|
||||
slink:VkImageViewCreateInfo::pname:format.
|
||||
** Let slink:VkDrmModifierPropertiesEXT be the array element whose
|
||||
** Let `VkDrmFormatModifierPropertiesEXT prop` be the array element whose
|
||||
pname:drmFormatModifier member is the value of the image's DRM format
|
||||
modifier.
|
||||
** Then the image view's set of _format features_ is the value of
|
||||
slink:VkDrmFormatModifierPropertiesEXT::drmFormatModifierTilingFeatures.
|
||||
`prop`::pname:drmFormatModifierTilingFeatures.
|
||||
endif::VK_EXT_image_drm_format_modifier[]
|
||||
|
||||
[[resources-association]]
|
||||
|
|
|
@ -252,7 +252,7 @@ include::../validity/structs/VkSamplerCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkSamplerCreateFlags.txt[]
|
||||
|
||||
sname:VkSamplerCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkSamplerCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ include::../validity/structs/VkShaderModuleCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkShaderModuleCreateFlags.txt[]
|
||||
|
||||
sname:VkShaderModuleCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkShaderModuleCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -1060,7 +1060,7 @@ include::../validity/structs/VkValidationCacheCreateInfoEXT.txt[]
|
|||
--
|
||||
include::../api/flags/VkValidationCacheCreateFlagsEXT.txt[]
|
||||
|
||||
sname:VkValidationCacheCreateFlagsEXT is a bitmask type for setting a mask,
|
||||
tname:VkValidationCacheCreateFlagsEXT is a bitmask type for setting a mask,
|
||||
but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -820,8 +820,8 @@ include::../api/enums/VkSparseImageFormatFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkSparseImageFormatFlags.txt[]
|
||||
|
||||
sname:VkSparseImageFormatFlags is a bitmask type for setting a mask of zero
|
||||
or more slink:VkSparseImageFormatFlagBits.
|
||||
tname:VkSparseImageFormatFlags is a bitmask type for setting a mask of zero
|
||||
or more elink:VkSparseImageFormatFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='vkGetPhysicalDeviceSparseImageFormatProperties',desc='Retrieve properties of an image format applied to sparse images',type='protos']
|
||||
|
@ -1399,8 +1399,8 @@ include::../api/enums/VkSparseMemoryBindFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkSparseMemoryBindFlags.txt[]
|
||||
|
||||
sname:VkSparseMemoryBindFlags is a bitmask type for setting a mask of zero
|
||||
or more slink:VkSparseMemoryBindFlagBits.
|
||||
tname:VkSparseMemoryBindFlags is a bitmask type for setting a mask of zero
|
||||
or more elink:VkSparseMemoryBindFlagBits.
|
||||
--
|
||||
|
||||
[open,refpage='VkSparseBufferMemoryBindInfo',desc='Structure specifying a sparse buffer memory bind operation',type='structs']
|
||||
|
|
|
@ -451,8 +451,8 @@ between queues.
|
|||
--
|
||||
include::../api/flags/VkPipelineStageFlags.txt[]
|
||||
|
||||
sname:VkPipelineStageFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkPipelineStageFlagBits.
|
||||
tname:VkPipelineStageFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkPipelineStageFlagBits.
|
||||
--
|
||||
|
||||
[[synchronization-pipeline-stages-masks]]
|
||||
|
@ -682,7 +682,7 @@ Memory in Vulkan can: be accessed from within shader invocations and via
|
|||
some fixed-function stages of the pipeline.
|
||||
The _access type_ is a function of the <<descriptorsets, descriptor type>>
|
||||
used, or how a fixed-function stage accesses memory.
|
||||
Each access type corresponds to a bit flag in slink:VkAccessFlagBits.
|
||||
Each access type corresponds to a bit flag in elink:VkAccessFlagBits.
|
||||
|
||||
[[synchronization-access-masks]]
|
||||
Some synchronization commands take sets of access types as parameters to
|
||||
|
@ -834,9 +834,9 @@ ifndef::VK_NV_mesh_shader[]
|
|||
|ename:VK_ACCESS_SHADER_WRITE_BIT | ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|
||||
endif::VK_NV_mesh_shader[]
|
||||
ifdef::VK_NV_mesh_shader[]
|
||||
|ename:VK_ACCESS_UNIFORM_READ_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|
||||
|ename:VK_ACCESS_SHADER_READ_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|
||||
|ename:VK_ACCESS_SHADER_WRITE_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|
||||
|ename:VK_ACCESS_UNIFORM_READ_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|
||||
|ename:VK_ACCESS_SHADER_READ_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|
||||
|ename:VK_ACCESS_SHADER_WRITE_BIT | ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|
||||
endif::VK_NV_mesh_shader[]
|
||||
|ename:VK_ACCESS_INPUT_ATTACHMENT_READ_BIT | ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
|
||||
|ename:VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | ename:VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
|
||||
|
@ -909,8 +909,8 @@ explicit memory barrier.
|
|||
--
|
||||
include::../api/flags/VkAccessFlags.txt[]
|
||||
|
||||
sname:VkAccessFlags is a bitmask type for setting a mask of zero or more
|
||||
slink:VkAccessFlagBits.
|
||||
tname:VkAccessFlags is a bitmask type for setting a mask of zero or more
|
||||
elink:VkAccessFlagBits.
|
||||
--
|
||||
|
||||
|
||||
|
@ -1225,8 +1225,8 @@ include::../api/enums/VkFenceCreateFlagBits.txt[]
|
|||
--
|
||||
include::../api/flags/VkFenceCreateFlags.txt[]
|
||||
|
||||
sname:VkFenceCreateFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkFenceCreateFlagBits.
|
||||
tname:VkFenceCreateFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkFenceCreateFlagBits.
|
||||
--
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_external_fence[]
|
||||
|
@ -1332,7 +1332,7 @@ include::../api/protos/vkGetFenceWin32HandleKHR.txt[]
|
|||
For handle types defined as NT handles, the handles returned by
|
||||
fname:vkGetFenceWin32HandleKHR are owned by the application.
|
||||
To avoid leaking resources, the application must: release ownership of them
|
||||
using the fname:CloseHandle system call when they are no longer needed.
|
||||
using the code:CloseHandle system call when they are no longer needed.
|
||||
|
||||
Exporting a Windows handle from a fence may: have side effects depending on
|
||||
the transference of the specified handle type, as described in
|
||||
|
@ -1775,7 +1775,7 @@ endif::VK_KHR_external_fence_win32,VK_KHR_external_fence_fd[]
|
|||
implementations to modify an object's internal state, i.e. payload, without
|
||||
internal synchronization.
|
||||
However, for fences sharing a payload across processes, satisfying the
|
||||
external synchronization requirements of fname:VkFence parameters as if all
|
||||
external synchronization requirements of sname:VkFence parameters as if all
|
||||
fences in the set were the same object is sometimes infeasible.
|
||||
Satisfying valid usage constraints on the state of a fence would similarly
|
||||
require impractical coordination or levels of trust between processes.
|
||||
|
@ -1872,7 +1872,7 @@ include::../api/protos/vkImportFenceWin32HandleKHR.txt[]
|
|||
Importing a fence payload from Windows handles does not transfer ownership
|
||||
of the handle to the Vulkan implementation.
|
||||
For handle types defined as NT handles, the application must: release
|
||||
ownership using the fname:CloseHandle system call when the handle is no
|
||||
ownership using the code:CloseHandle system call when the handle is no
|
||||
longer needed.
|
||||
|
||||
Applications can: import the same fence payload into multiple instances of
|
||||
|
@ -2077,8 +2077,8 @@ or the equivalent
|
|||
include::../api/flags/VkFenceImportFlagsKHR.txt[]
|
||||
endif::VK_KHR_external_fence[]
|
||||
|
||||
sname:VkFenceImportFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkFenceImportFlagBits.
|
||||
tname:VkFenceImportFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkFenceImportFlagBits.
|
||||
--
|
||||
|
||||
endif::VK_KHR_external_fence_win32,VK_KHR_external_fence_fd[]
|
||||
|
@ -2166,7 +2166,7 @@ include::../validity/structs/VkSemaphoreCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkSemaphoreCreateFlags.txt[]
|
||||
|
||||
sname:VkSemaphoreCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkSemaphoreCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -2284,7 +2284,7 @@ include::../api/protos/vkGetSemaphoreWin32HandleKHR.txt[]
|
|||
For handle types defined as NT handles, the handles returned by
|
||||
fname:vkGetSemaphoreWin32HandleKHR are owned by the application.
|
||||
To avoid leaking resources, the application must: release ownership of them
|
||||
using the fname:CloseHandle system call when they are no longer needed.
|
||||
using the code:CloseHandle system call when they are no longer needed.
|
||||
|
||||
Exporting a Windows handle from a semaphore may: have side effects depending
|
||||
on the transference of the specified handle type, as described in
|
||||
|
@ -2675,7 +2675,7 @@ endif::VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_fd[]
|
|||
implementations to modify an object's internal state, i.e. payload, without
|
||||
internal synchronization.
|
||||
However, for semaphores sharing a payload across processes, satisfying the
|
||||
external synchronization requirements of fname:VkSemaphore parameters as if
|
||||
external synchronization requirements of sname:VkSemaphore parameters as if
|
||||
all semaphores in the set were the same object is sometimes infeasible.
|
||||
Satisfying the <<synchronization-semaphores-waiting-state,wait operation
|
||||
state requirements>> would similarly require impractical coordination or
|
||||
|
@ -2777,7 +2777,7 @@ include::../api/protos/vkImportSemaphoreWin32HandleKHR.txt[]
|
|||
Importing a semaphore payload from Windows handles does not transfer
|
||||
ownership of the handle to the Vulkan implementation.
|
||||
For handle types defined as NT handles, the application must: release
|
||||
ownership using the fname:CloseHandle system call when the handle is no
|
||||
ownership using the code:CloseHandle system call when the handle is no
|
||||
longer needed.
|
||||
|
||||
Applications can: import the same semaphore payload into multiple instances
|
||||
|
@ -2975,8 +2975,8 @@ or the equivalent
|
|||
include::../api/flags/VkSemaphoreImportFlagsKHR.txt[]
|
||||
endif::VK_KHR_external_semaphore[]
|
||||
|
||||
sname:VkSemaphoreImportFlags is a bitmask type for setting a mask of zero or
|
||||
more slink:VkSemaphoreImportFlagBits.
|
||||
tname:VkSemaphoreImportFlags is a bitmask type for setting a mask of zero or
|
||||
more elink:VkSemaphoreImportFlagBits.
|
||||
--
|
||||
|
||||
endif::VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_fd[]
|
||||
|
@ -3047,7 +3047,7 @@ include::../validity/structs/VkEventCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkEventCreateFlags.txt[]
|
||||
|
||||
sname:VkEventCreateFlags is a bitmask type for setting a mask, but is
|
||||
tname:VkEventCreateFlags is a bitmask type for setting a mask, but is
|
||||
currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -3719,8 +3719,8 @@ endif::VK_VERSION_1_1,VK_KHR_device_group[]
|
|||
--
|
||||
include::../api/flags/VkDependencyFlags.txt[]
|
||||
|
||||
sname:VkDependencyFlags is a bitmask type for setting a mask of zero or more
|
||||
slink:VkDependencyFlagBits.
|
||||
tname:VkDependencyFlags is a bitmask type for setting a mask of zero or more
|
||||
elink:VkDependencyFlagBits.
|
||||
--
|
||||
|
||||
|
||||
|
|
|
@ -519,7 +519,7 @@ include::../validity/structs/VkPipelineTessellationStateCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineTessellationStateCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineTessellationStateCreateFlags is a bitmask type for setting a
|
||||
tname:VkPipelineTessellationStateCreateFlags is a bitmask type for setting a
|
||||
mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -443,7 +443,7 @@ These cases include:
|
|||
ifdef::VK_NV_corner_sampled_image[]
|
||||
* If the image was created with slink:VkImageCreateInfo::pname:flags
|
||||
containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, the sampler
|
||||
addressing modes must: only use a slink:VkSamplerAddressMode of
|
||||
addressing modes must: only use a elink:VkSamplerAddressMode of
|
||||
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
|
||||
endif::VK_NV_corner_sampled_image[]
|
||||
ifdef::VK_NV_shader_image_footprint[]
|
||||
|
@ -2472,8 +2472,8 @@ to ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT, the above summation
|
|||
is used.
|
||||
If the reduction mode is ename:VK_SAMPLER_REDUCTION_MODE_MIN_EXT or
|
||||
ename:VK_SAMPLER_REDUCTION_MODE_MAX_EXT, then the value is instead computed
|
||||
as [eq]#{tau}~2Daniso~ = reduce({tau}~1~, {ldots}, {tau}~N~)#,
|
||||
combining all texel values with non-zero weights.
|
||||
as [eq]#{tau}~2Daniso~ = reduce({tau}~1~, {ldots}, {tau}~N~)#, combining all
|
||||
texel values with non-zero weights.
|
||||
|
||||
endif::VK_EXT_sampler_filter_minmax[]
|
||||
|
||||
|
@ -2518,13 +2518,13 @@ texels whose size is given by the following table:
|
|||
The code:Coarse input is used to select between the two mip levels that may:
|
||||
be accessed during texel filtering when using a pname:mipmapMode of
|
||||
ename:VK_SAMPLER_MIPMAP_MODE_LINEAR.
|
||||
When filtering between two mip levels, a code:Coarse value of ename:true
|
||||
When filtering between two mip levels, a code:Coarse value of code:true
|
||||
requests the footprint in the lower-resolution mip level (higher level
|
||||
number), while ename:false requests the footprint in the higher-resolution
|
||||
number), while code:false requests the footprint in the higher-resolution
|
||||
mip level.
|
||||
If texel filtering would access only a single mip level, the footprint in
|
||||
that level would be returned when code:Coarse is set to ename:false; an
|
||||
empty footprint would be returned when code:Coarse is set to ename:true.
|
||||
that level would be returned when code:Coarse is set to code:false; an empty
|
||||
footprint would be returned when code:Coarse is set to code:true.
|
||||
|
||||
The footprint for code:OpImageSampleFootprintNV is returned in a structure
|
||||
with six members:
|
||||
|
|
|
@ -389,7 +389,7 @@ include::../validity/structs/VkPipelineViewportSwizzleStateCreateInfoNV.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineViewportSwizzleStateCreateFlagsNV.txt[]
|
||||
|
||||
sname:VkPipelineViewportSwizzleStateCreateFlagsNV is a bitmask type for
|
||||
tname:VkPipelineViewportSwizzleStateCreateFlagsNV is a bitmask type for
|
||||
setting a mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
@ -454,7 +454,7 @@ include::../validity/structs/VkViewportSwizzleNV.txt[]
|
|||
[open,refpage='VkViewportCoordinateSwizzleNV',desc='Specify how a viewport coordinate is swizzled',type='enums']
|
||||
--
|
||||
|
||||
Possible values of the elink:VkViewportSwizzleNV::pname:x, pname:y, pname:z,
|
||||
Possible values of the slink:VkViewportSwizzleNV::pname:x, pname:y, pname:z,
|
||||
and pname:w members, specifying swizzling of the corresponding components of
|
||||
primitives, are:
|
||||
|
||||
|
@ -842,7 +842,7 @@ include::../validity/structs/VkPipelineViewportStateCreateInfo.txt[]
|
|||
--
|
||||
include::../api/flags/VkPipelineViewportStateCreateFlags.txt[]
|
||||
|
||||
sname:VkPipelineViewportStateCreateFlags is a bitmask type for setting a
|
||||
tname:VkPipelineViewportStateCreateFlags is a bitmask type for setting a
|
||||
mask, but is currently reserved for future use.
|
||||
--
|
||||
|
||||
|
|
|
@ -16,10 +16,22 @@
|
|||
|
||||
# checkLinks.py - validate link/reference API constructs in files
|
||||
#
|
||||
# Usage: checkLinks.py files > logfile
|
||||
# Usage: checkLinks.py [options] files > logfile
|
||||
#
|
||||
# Uses vkapi.py, which is a Python representation of relevant parts
|
||||
# of the Vulkan API.
|
||||
# Options:
|
||||
# -follow attempt to follow include:: directives. This script isn't # an
|
||||
# Asciidoctor processor, so only literal relative paths can # be followed.
|
||||
# -info print some internal diagnostics.
|
||||
# -paramcheck attempt to validate param: names against the surrounding
|
||||
# context (the current structure/function being validated, for example).
|
||||
# This generates many false positives, so is not enabled by default.
|
||||
# -fatal unvalidatable links cause immediate error exit from the script.
|
||||
# Otherwise, errors are accumulated and summarized at the end.
|
||||
#
|
||||
# Depends on vkapi.py, which is a Python representation of relevant parts
|
||||
# of the Vulkan API. Only works when vkapi.py is generated for the full
|
||||
# API, e.g. 'makeAllExts checklinks'; otherwise many false-flagged errors
|
||||
# will occur.
|
||||
|
||||
import copy, os, pdb, re, string, sys
|
||||
from vkapi import *
|
||||
|
@ -30,8 +42,6 @@ global errCount, warnCount, emittedPrefix, printInfo
|
|||
curFile = '???'
|
||||
curLine = -1
|
||||
sectionDepth = 0
|
||||
errCount = 0
|
||||
warnCount = 0
|
||||
emittedPrefix = {}
|
||||
printInfo = False
|
||||
|
||||
|
@ -79,7 +89,7 @@ def checkTag(tag, value, dict, dictName, tagName):
|
|||
|
||||
# Report an error due to an asciidoc tag which doesn't match
|
||||
# a corresponding API entity.
|
||||
def foundError(errType, tag, value):
|
||||
def foundError(errType, tag, value, fatal):
|
||||
global curFile, curLine
|
||||
error('no such', errType, tag + ':' + value)
|
||||
# Try some heuristics to detect likely problems such as missing vk
|
||||
|
@ -87,7 +97,7 @@ def foundError(errType, tag, value):
|
|||
|
||||
# Look in all the dictionaries in vkapi.py to see if the tag
|
||||
# is just wrong but the API entity actually exists.
|
||||
checkTag(tag, value, flags, 'flags', 'elink')
|
||||
checkTag(tag, value, flags, 'flags', 'tlink/tname')
|
||||
checkTag(tag, value, enums, 'enums', 'elink')
|
||||
checkTag(tag, value, structs, 'structs', 'slink/sname')
|
||||
checkTag(tag, value, handles, 'handles', 'slink/sname')
|
||||
|
@ -99,6 +109,11 @@ def foundError(errType, tag, value):
|
|||
# Look for missing vk prefixes (quirky since it's case-dependent)
|
||||
# NOT DONE YET
|
||||
|
||||
if fatal:
|
||||
print('ERROR: %s line %d:' % (curFile, curLine),
|
||||
' '.join(['no such', errType, tag + ':' + value]), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
# Look for param in the list of all parameters of the specified functions
|
||||
# Returns True if found, False otherwise
|
||||
def findParam(param, funclist):
|
||||
|
@ -149,18 +164,21 @@ def initChecks():
|
|||
# Validate asciidoc internal links in specified file.
|
||||
# infile - filename to validate
|
||||
# follow - if True, recursively follow include:: directives
|
||||
# paramCheck - if True, try to verify pname: refers to valid
|
||||
# parameter/member names. This generates many false flags currently
|
||||
# included - if True, function was called recursively
|
||||
# fatalExit - if True, validation errors cause an error exit immediately
|
||||
# Links checked are:
|
||||
# fname:vkBlah - Vulkan command name (generates internal link)
|
||||
# flink:vkBlah - Vulkan command name
|
||||
# sname:VkBlah - Vulkan struct name (generates internal link)
|
||||
# slink:VkBlah - Vulkan struct name
|
||||
# elink:VkEnumName - Vulkan enumeration ('enum') type name
|
||||
# elink:VkEnumName - Vulkan enumeration ('enum') type name (generates internal link)
|
||||
# ename:VK_BLAH - Vulkan enumerant token name
|
||||
# pname:name - parameter name to a command or a struct member
|
||||
# tlink:name - Other Vulkan type name (generates internal link)
|
||||
# tname:name - Other Vulkan type name
|
||||
def checkLinks(infile, follow = False, included = False):
|
||||
def checkLinks(infile, follow = False, paramCheck = True, included = False, fatalExit = False):
|
||||
global curFile, curLine, curFuncs, curStruct, accumFunc, sectionDepth
|
||||
global errCount, warnCount
|
||||
global incPat, linkPat, pathPat, sectionPat
|
||||
|
@ -242,7 +260,7 @@ def checkLinks(infile, follow = False, included = False):
|
|||
# Actually process the included file now, recursively
|
||||
newpath = os.path.normpath(os.path.join(inPath, incpath))
|
||||
info(curFile, ': including file:', newpath)
|
||||
checkLinks(newpath, follow, included=True)
|
||||
checkLinks(newpath, follow, paramCheck, included = True, fatalExit = fatalExit)
|
||||
|
||||
matches = linkPat.findall(line)
|
||||
for match in matches:
|
||||
|
@ -253,20 +271,25 @@ def checkLinks(infile, follow = False, included = False):
|
|||
value = match[2]
|
||||
if (tag == 'fname' or tag == 'flink'):
|
||||
if (value not in protos.keys()):
|
||||
foundError('function', tag, value)
|
||||
foundError('function', tag, value, False)
|
||||
elif (tag == 'sname' or tag == 'slink'):
|
||||
if (value not in structs.keys() and
|
||||
value not in handles.keys()):
|
||||
foundError('aggregate/scalar/handle/define type', tag, value)
|
||||
foundError('aggregate/scalar/handle/define type', tag, value, False)
|
||||
elif (tag == 'ename'):
|
||||
if (value not in consts.keys() and value not in defines.keys()):
|
||||
foundError('enumerant/constant', tag, value)
|
||||
foundError('enumerant/constant', tag, value, False)
|
||||
elif (tag == 'elink'):
|
||||
if (value not in enums.keys() and value not in flags.keys()):
|
||||
foundError('enum/bitflag type', tag, value)
|
||||
elif (tag == 'tlink' or tag == 'tname'):
|
||||
if (value not in funcpointers.keys()):
|
||||
foundError('function pointer/other type', tag, value)
|
||||
foundError('enum/bitflag type', tag, value, fatalExit)
|
||||
# tname and tlink are the same except if the errors are treated as fatal
|
||||
# They can be recombined once both are error-clean
|
||||
elif (tag == 'tname'):
|
||||
if (value not in funcpointers.keys() and value not in flags.keys()):
|
||||
foundError('function pointer/other type', tag, value, fatalExit)
|
||||
elif (tag == 'tlink'):
|
||||
if (value not in funcpointers.keys() and value not in flags.keys()):
|
||||
foundError('function pointer/other type', tag, value, False)
|
||||
elif (tag == 'pname'):
|
||||
# Any pname: tag means to stop accumulating /protos/
|
||||
accumFunc = False
|
||||
|
@ -277,6 +300,7 @@ def checkLinks(infile, follow = False, included = False):
|
|||
elif (curFuncs and findParam(value, curFuncs)):
|
||||
True
|
||||
else:
|
||||
if paramCheck:
|
||||
warning('parameter', value, 'not found. curStruct =',
|
||||
curStruct, 'curFuncs =', curFuncs)
|
||||
else:
|
||||
|
@ -302,14 +326,38 @@ def checkLinks(infile, follow = False, included = False):
|
|||
|
||||
if __name__ == '__main__':
|
||||
follow = False
|
||||
paramCheck = False
|
||||
included = False
|
||||
fatalExit = False
|
||||
|
||||
totalErrCount = 0
|
||||
totalWarnCount = 0
|
||||
|
||||
if (len(sys.argv) > 1):
|
||||
for file in sys.argv[1:]:
|
||||
if (file == '-follow'):
|
||||
follow = True
|
||||
elif (file == '-info'):
|
||||
printInfo = True
|
||||
elif file == '-paramcheck':
|
||||
paramCheck = True
|
||||
elif (file == '-fatal'):
|
||||
fatalExit = True
|
||||
else:
|
||||
initChecks()
|
||||
checkLinks(file, follow)
|
||||
checkLinks(file,
|
||||
follow,
|
||||
paramCheck = paramCheck,
|
||||
included = included,
|
||||
fatalExit = fatalExit)
|
||||
totalErrCount = totalErrCount + errCount
|
||||
totalWarnCount = totalWarnCount + warnCount
|
||||
else:
|
||||
print('Need arguments: [-follow] [-info] infile [infile...]', file=sys.stderr)
|
||||
print('Need arguments: [-follow] [-info] [-paramcheck] [-fatal] infile [infile...]', file=sys.stderr)
|
||||
|
||||
if (totalErrCount > 0 or totalWarnCount > 0):
|
||||
if (not included):
|
||||
print('TOTAL Errors found:', totalErrCount, 'Warnings found:',
|
||||
totalWarnCount)
|
||||
if totalErrCount > 0:
|
||||
sys.exit(1)
|
||||
|
|
|
@ -36,6 +36,8 @@ if __name__ == '__main__':
|
|||
help='Generate internal build, not public')
|
||||
parser.add_argument('-norefpages', action='store_true',
|
||||
help='Do not generate refpages')
|
||||
parser.add_argument('-chunked', action='store_true',
|
||||
help='Always generate chunked HTML outputs')
|
||||
parser.add_argument('-pdf', action='store_true',
|
||||
help='Always generate PDF outputs')
|
||||
parser.add_argument('-nov11', action='store_false', dest='v11',
|
||||
|
@ -68,6 +70,8 @@ if __name__ == '__main__':
|
|||
# refPageTargets += ' manpdf'
|
||||
|
||||
specTargets = ' html'
|
||||
if args.chunked:
|
||||
specTargets += ' chunked'
|
||||
if args.pdf:
|
||||
specTargets += ' pdf'
|
||||
|
||||
|
|
|
@ -317,22 +317,6 @@
|
|||
id="path7064"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker5716"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
id="path5714"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
transform="matrix(-0.4,0,0,-0.4,-4,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
orient="auto"
|
||||
|
@ -626,18 +610,18 @@
|
|||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.70710678"
|
||||
inkscape:cx="336.9947"
|
||||
inkscape:cy="227.64983"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="275.51124"
|
||||
inkscape:cy="235.16674"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
showgrid="false"
|
||||
inkscape:snap-center="true"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-text-baseline="true"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="987"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1137"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="false"
|
||||
|
@ -664,7 +648,7 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -801,15 +785,10 @@
|
|||
sodipodi:role="line">Rasterization</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5106)"
|
||||
d="M -34.994737,89.387552 V 229.38755 h 120"
|
||||
d="m 85.005262,89.387553 -119.999999,-10e-7 V 229.38755 h 120"
|
||||
id="path4474"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5716)"
|
||||
d="m 85.005263,89.387552 h -120.65"
|
||||
id="path5712"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect815-1-4-3-6-1"
|
||||
|
@ -872,7 +851,7 @@
|
|||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9866)"
|
||||
d="m 245.00526,64.387552 h -50"
|
||||
d="m 245.00526,44.387553 h -50"
|
||||
id="path9856"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
|
@ -884,7 +863,7 @@
|
|||
sodipodi:nodetypes="cccccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 245.00526,49.387552 h -25 v 15"
|
||||
d="m 245.00526,64.387553 h -25 v -20"
|
||||
id="path11116"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
|
@ -908,7 +887,7 @@
|
|||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker12928);marker-end:url(#marker15937)"
|
||||
d="m 195.00526,334.38755 h 25 V 74.387552 h -25"
|
||||
d="m 195.00526,334.38755 h 25 l 0,-264.999997 h -25"
|
||||
id="path15909"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
|
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 80 KiB |
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 318 KiB After Width: | Height: | Size: 95 KiB |
|
@ -43,7 +43,7 @@ extern "C" {
|
|||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 91
|
||||
#define VK_HEADER_VERSION 92
|
||||
|
||||
|
||||
#define VK_NULL_HANDLE 0
|
||||
|
@ -1731,6 +1731,10 @@ typedef enum VkStencilFaceFlagBits {
|
|||
} VkStencilFaceFlagBits;
|
||||
typedef VkFlags VkStencilFaceFlags;
|
||||
|
||||
typedef enum VkRenderPassCreateFlagBits {
|
||||
VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkRenderPassCreateFlagBits;
|
||||
|
||||
typedef struct VkApplicationInfo {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
|
@ -7791,8 +7795,6 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
|
|||
|
||||
|
||||
#define VK_EXT_image_drm_format_modifier 1
|
||||
#define VK_EXT_EXTENSION_159_SPEC_VERSION 0
|
||||
#define VK_EXT_EXTENSION_159_EXTENSION_NAME "VK_EXT_extension_159"
|
||||
#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
|
||||
#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
|
||||
|
||||
|
|
|
@ -14,10 +14,10 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# makeAll - invoke Makefile with the right options to build with all
|
||||
# makeAllExts - invoke Makefile with the right options to build with all
|
||||
# extensions included.
|
||||
|
||||
# Usage: makeAll targets
|
||||
# Usage: makeAllExts targets
|
||||
|
||||
# Load extension list, generated from vk.xml
|
||||
make config/extDependency.sh || exit
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# The value to start tagging VU statements at, unless overridden by -nextvu
|
||||
startVUID = 2498
|
||||
startVUID = 2506
|
||||
|
|
|
@ -439,6 +439,8 @@ table:
|
|||
type. Example: elink{cl}VkResult -> elink:VkResult.
|
||||
| ename{cl} | Formats the macro argument as a Vulkan enumerant name.
|
||||
Example: ename{cl}VK_EVENT_SET -> ename:VK_EVENT_SET.
|
||||
Note that this is not related to elink{cl}, unlike the
|
||||
other macro link{cl}/text{cl} pairings.
|
||||
| etext{cl} | Formats the macro argument like ename{cl}. Not validated.
|
||||
Examples: etext{cl}_RANGE_SIZE -> etext:_RANGE_SIZE,
|
||||
etext{cl}VK_IMAGE_CREATE_SPARSE_* ->
|
||||
|
@ -456,10 +458,12 @@ table:
|
|||
Only use this macro <<markup-macros-api-text, when
|
||||
necessary>>.
|
||||
| tlink{cl} | Generates a cross-reference or link to the definition
|
||||
of the Vulkan type in the macro argument. Example:
|
||||
tlink{cl}PFN_vkAllocationFunction ->
|
||||
tlink:PFN_vkAllocationFunction. This is only used for
|
||||
function pointer types at present.
|
||||
of the Vulkan type in the macro argument.
|
||||
Example: tlink{cl}PFN_vkAllocationFunction ->
|
||||
tlink:PFN_vkAllocationFunction.
|
||||
This is only used for function pointer and `Vk*Flags`
|
||||
types at present, although it is a potentially a catch-all
|
||||
for other types not covered by a more specific macro.
|
||||
| tname{cl} | Formats the macro argument like tlink{cl}. Does not
|
||||
generate a cross-reference. Example:
|
||||
tname{cl}PFN_vkAllocationFunction ->
|
||||
|
|
|
@ -144,6 +144,10 @@ class PyOutputGenerator(OutputGenerator):
|
|||
|
||||
if (category == 'struct' or category == 'union'):
|
||||
self.genStruct(typeinfo, name, alias)
|
||||
else:
|
||||
if alias:
|
||||
# Always emit an alias
|
||||
count = 1
|
||||
else:
|
||||
# Extract the type name
|
||||
# (from self.genOpts). Copy other text through unchanged.
|
||||
|
|
24
xml/vk.xml
24
xml/vk.xml
|
@ -146,7 +146,7 @@ server.
|
|||
<type category="define">// Vulkan 1.1 version number
|
||||
#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
|
||||
<type category="define">// Version of this file
|
||||
#define <name>VK_HEADER_VERSION</name> 91</type>
|
||||
#define <name>VK_HEADER_VERSION</name> 92</type>
|
||||
|
||||
<type category="define">
|
||||
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
|
||||
|
@ -7176,6 +7176,7 @@ server.
|
|||
<type name="VkBaseOutStructure"/>
|
||||
<type name="VkBaseInStructure"/>
|
||||
<type name="VkVendorId"/>
|
||||
<type name="VkRenderPassCreateFlagBits" comment="Workaround to get this included in the API even when it has no bits defined"/>
|
||||
</require>
|
||||
</feature>
|
||||
<feature api="vulkan" name="VK_VERSION_1_1" number="1.1" comment="Vulkan 1.1 core API interface definitions.">
|
||||
|
@ -9363,9 +9364,6 @@ server.
|
|||
</extension>
|
||||
<extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" requires="VK_KHR_bind_memory2,VK_KHR_get_physical_device_properties2,VK_KHR_image_format_list,VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Chad Versace @chadversary" supported="vulkan">
|
||||
<require>
|
||||
<enum value="0" name="VK_EXT_EXTENSION_159_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_extension_159"" name="VK_EXT_EXTENSION_159_EXTENSION_NAME"/>
|
||||
|
||||
<enum value="1" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_image_drm_format_modifier"" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME"/>
|
||||
|
||||
|
@ -10123,5 +10121,23 @@ server.
|
|||
<enum value=""VK_NV_extension_245"" name="VK_NV_EXTENSION_245_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_246" number="246" author="EXT" contact="Tobias Hector @tobski" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_EXT_EXTENSION_246_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_extension_246"" 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=""VK_EXT_extension_247"" 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=""VK_EXT_extension_248"" name="VK_EXT_EXTENSION_248_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
</extensions>
|
||||
</registry>
|
||||
|
|
Loading…
Reference in New Issue