diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f7ea499e..10583b02 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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/ diff --git a/BUILD.adoc b/BUILD.adoc index 0bd5bef7..39fdd40e 100644 --- a/BUILD.adoc +++ b/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 <>. +If you will need to generate the chunked HTML target, install the +<> 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 <> 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 diff --git a/Makefile b/Makefile index 0a3eb16f..a9cf3fc8 100644 --- a/Makefile +++ b/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 -# NOTEOPTS sets options controlling which NOTEs are generated -# ATTRIBOPTS sets the api revision and enables MathJax generation +# asciidoc attributes to set (defaults are usually OK) +# NOTEOPTS sets options controlling which NOTEs are generated +# 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 -# ADOCOPTS options for asciidoc->HTML5 output +# 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) +REGISTRY = xml +VKXML = $(REGISTRY)/vk.xml +GENVK = $(REGISTRY)/genvk.py +GENVKOPTS = $(VERSIONOPTIONS) $(EXTOPTIONS) $(GENVKEXTRA) -registry $(VKXML) +GENVKEXTRA = vkapi.py: $(VKXML) $(GENVK) $(PYTHON) $(GENVK) $(GENVKOPTS) -o . vkapi.py diff --git a/appendices/VK_AMD_memory_overallocation_behavior.txt b/appendices/VK_AMD_memory_overallocation_behavior.txt index 028f9383..39660597 100644 --- a/appendices/VK_AMD_memory_overallocation_behavior.txt +++ b/appendices/VK_AMD_memory_overallocation_behavior.txt @@ -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 diff --git a/appendices/VK_AMD_shader_core_properties.txt b/appendices/VK_AMD_shader_core_properties.txt index 440f33df..e2289d09 100644 --- a/appendices/VK_AMD_shader_core_properties.txt +++ b/appendices/VK_AMD_shader_core_properties.txt @@ -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 diff --git a/appendices/VK_ANDROID_external_memory_android_hardware_buffer.txt b/appendices/VK_ANDROID_external_memory_android_hardware_buffer.txt index b4fec65e..42e70e3e 100644 --- a/appendices/VK_ANDROID_external_memory_android_hardware_buffer.txt +++ b/appendices/VK_ANDROID_external_memory_android_hardware_buffer.txt @@ -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 diff --git a/appendices/VK_EXT_astc_decode_mode.txt b/appendices/VK_EXT_astc_decode_mode.txt index 03cea212..e4ee895a 100644 --- a/appendices/VK_EXT_astc_decode_mode.txt +++ b/appendices/VK_EXT_astc_decode_mode.txt @@ -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. diff --git a/appendices/VK_EXT_debug_utils.txt b/appendices/VK_EXT_debug_utils.txt index 25a42ce1..83b60ecd 100644 --- a/appendices/VK_EXT_debug_utils.txt +++ b/appendices/VK_EXT_debug_utils.txt @@ -45,10 +45,10 @@ The main difference between this extension and `<>` and `<>` 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 `<>` and `<>` by allowing object diff --git a/appendices/VK_EXT_image_drm_format_modifier.txt b/appendices/VK_EXT_image_drm_format_modifier.txt index 2d22ff21..e0927c56 100644 --- a/appendices/VK_EXT_image_drm_format_modifier.txt +++ b/appendices/VK_EXT_image_drm_format_modifier.txt @@ -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`^<>^ -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`^<>^ 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`^<>^ @@ -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 diff --git a/appendices/VK_EXT_vertex_attribute_divisor.txt b/appendices/VK_EXT_vertex_attribute_divisor.txt index ab476038..26c374fa 100644 --- a/appendices/VK_EXT_vertex_attribute_divisor.txt +++ b/appendices/VK_EXT_vertex_attribute_divisor.txt @@ -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) diff --git a/appendices/VK_KHR_bind_memory2.txt b/appendices/VK_KHR_bind_memory2.txt index fad04243..00d633df 100644 --- a/appendices/VK_KHR_bind_memory2.txt +++ b/appendices/VK_KHR_bind_memory2.txt @@ -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 diff --git a/appendices/VK_KHR_descriptor_update_template.txt b/appendices/VK_KHR_descriptor_update_template.txt index 89cf78a3..ce3219a7 100644 --- a/appendices/VK_KHR_descriptor_update_template.txt +++ b/appendices/VK_KHR_descriptor_update_template.txt @@ -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 diff --git a/appendices/VK_KHR_external_fence_win32.txt b/appendices/VK_KHR_external_fence_win32.txt index 9a570017..1c15b7f6 100644 --- a/appendices/VK_KHR_external_fence_win32.txt +++ b/appendices/VK_KHR_external_fence_win32.txt @@ -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. diff --git a/appendices/VK_KHR_get_surface_capabilities2.txt b/appendices/VK_KHR_get_surface_capabilities2.txt index 3f94ec7f..1ef54ef5 100644 --- a/appendices/VK_KHR_get_surface_capabilities2.txt +++ b/appendices/VK_KHR_get_surface_capabilities2.txt @@ -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. diff --git a/appendices/VK_KHR_incremental_present.txt b/appendices/VK_KHR_incremental_present.txt index 83a3b291..4a35c3b3 100644 --- a/appendices/VK_KHR_incremental_present.txt +++ b/appendices/VK_KHR_incremental_present.txt @@ -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 `<>` 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 diff --git a/appendices/VK_KHR_maintenance2.txt b/appendices/VK_KHR_maintenance2.txt index b5832d64..9b7ec71c 100644 --- a/appendices/VK_KHR_maintenance2.txt +++ b/appendices/VK_KHR_maintenance2.txt @@ -73,8 +73,8 @@ None. === New Enums - * slink:VkPointClippingBehaviorKHR - * slink:VkTessellationDomainOriginKHR + * elink:VkPointClippingBehaviorKHR + * elink:VkTessellationDomainOriginKHR === New Structures diff --git a/appendices/VK_KHR_swapchain.txt b/appendices/VK_KHR_swapchain.txt index bb4f35d9..84d2fe1a 100644 --- a/appendices/VK_KHR_swapchain.txt +++ b/appendices/VK_KHR_swapchain.txt @@ -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. diff --git a/appendices/VK_NVX_device_generated_commands.txt b/appendices/VK_NVX_device_generated_commands.txt index 37e02adc..ae6be9a2 100644 --- a/appendices/VK_NVX_device_generated_commands.txt +++ b/appendices/VK_NVX_device_generated_commands.txt @@ -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. diff --git a/appendices/VK_NV_clip_space_w_scaling.txt b/appendices/VK_NV_clip_space_w_scaling.txt index 48967fe9..a89c8e10 100644 --- a/appendices/VK_NV_clip_space_w_scaling.txt +++ b/appendices/VK_NV_clip_space_w_scaling.txt @@ -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 diff --git a/appendices/VK_NV_corner_sampled_image.txt b/appendices/VK_NV_corner_sampled_image.txt index febfe791..4de10966 100644 --- a/appendices/VK_NV_corner_sampled_image.txt +++ b/appendices/VK_NV_corner_sampled_image.txt @@ -55,7 +55,7 @@ None. === New Structures - * elink:VkPhysicalDeviceCornerSampledImageFeaturesNV + * slink:VkPhysicalDeviceCornerSampledImageFeaturesNV === New Functions diff --git a/appendices/VK_NV_device_diagnostic_checkpoints.txt b/appendices/VK_NV_device_diagnostic_checkpoints.txt index 28880a6e..c2724908 100644 --- a/appendices/VK_NV_device_diagnostic_checkpoints.txt +++ b/appendices/VK_NV_device_diagnostic_checkpoints.txt @@ -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 diff --git a/appendices/VK_NV_scissor_exclusive.txt b/appendices/VK_NV_scissor_exclusive.txt index 6fe99942..8cdae11a 100644 --- a/appendices/VK_NV_scissor_exclusive.txt +++ b/appendices/VK_NV_scissor_exclusive.txt @@ -39,7 +39,7 @@ None. === New Structures * slink:VkPhysicalDeviceExclusiveScissorFeaturesNV - * slink:VkPipelineExclusiveScissorStateCreateInfoNV + * slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV === New Functions diff --git a/appendices/VK_NV_shading_rate_image.txt b/appendices/VK_NV_shading_rate_image.txt index 4ab69e8f..d1717349 100644 --- a/appendices/VK_NV_shading_rate_image.txt +++ b/appendices/VK_NV_shading_rate_image.txt @@ -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 diff --git a/appendices/glossary.txt b/appendices/glossary.txt index 0332fe78..5fe6325d 100644 --- a/appendices/glossary.txt +++ b/appendices/glossary.txt @@ -33,7 +33,7 @@ Active (Transform Feedback):: pipeline are captured to the bound transform feedback buffers if those variables are decorated for transform feedback. endif::VK_EXT_transform_feedback[] - + Adjacent Vertex:: A vertex in an adjacency primitive topology that is not part of a given primitive, but is accessible in geometry shaders. @@ -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 <> 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 <> 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[] @@ -1453,7 +1453,7 @@ Vertex Stream:: Each vertex emitted by the geometry shader is directed at one of the vertex streams. endif::VK_EXT_transform_feedback[] - + ifdef::VK_EXT_validation_cache[] Validation Cache:: An object that can: be used to collect and retrieve validation results diff --git a/appendices/spirvenv.txt b/appendices/spirvenv.txt index 6816a70b..347f9a39 100644 --- a/appendices/spirvenv.txt +++ b/appendices/spirvenv.txt @@ -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[] diff --git a/chapters/VK_AMD_buffer_marker/copies.txt b/chapters/VK_AMD_buffer_marker/copies.txt index 4eeccf3d..9615579c 100644 --- a/chapters/VK_AMD_buffer_marker/copies.txt +++ b/chapters/VK_AMD_buffer_marker/copies.txt @@ -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. diff --git a/chapters/VK_EXT_debug_report.txt b/chapters/VK_EXT_debug_report.txt index aa15aaa8..1ce494ce 100644 --- a/chapters/VK_EXT_debug_report.txt +++ b/chapters/VK_EXT_debug_report.txt @@ -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'] diff --git a/chapters/VK_EXT_debug_utils.txt b/chapters/VK_EXT_debug_utils.txt index f5f3f41c..b999bc17 100644 --- a/chapters/VK_EXT_debug_utils.txt +++ b/chapters/VK_EXT_debug_utils.txt @@ -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: diff --git a/chapters/VK_EXT_display_surface_counter/surface_capabilities.txt b/chapters/VK_EXT_display_surface_counter/surface_capabilities.txt index 22fafcc0..e118f617 100644 --- a/chapters/VK_EXT_display_surface_counter/surface_capabilities.txt +++ b/chapters/VK_EXT_display_surface_counter/surface_capabilities.txt @@ -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. -- diff --git a/chapters/VK_GOOGLE_display_timing/queries.txt b/chapters/VK_GOOGLE_display_timing/queries.txt index 827ef78c..a458837a 100644 --- a/chapters/VK_GOOGLE_display_timing/queries.txt +++ b/chapters/VK_GOOGLE_display_timing/queries.txt @@ -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 diff --git a/chapters/VK_KHR_display/display.txt b/chapters/VK_KHR_display/display.txt index 8906a93d..847ef10f 100644 --- a/chapters/VK_KHR_display/display.txt +++ b/chapters/VK_KHR_display/display.txt @@ -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. -- diff --git a/chapters/VK_KHR_display_swapchain/create_shared_swapchains.txt b/chapters/VK_KHR_display_swapchain/create_shared_swapchains.txt index 16fbbae3..730f1566 100644 --- a/chapters/VK_KHR_display_swapchain/create_shared_swapchains.txt +++ b/chapters/VK_KHR_display_swapchain/create_shared_swapchains.txt @@ -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 diff --git a/chapters/VK_KHR_mir_surface/platformCreateSurface_mir.txt b/chapters/VK_KHR_mir_surface/platformCreateSurface_mir.txt deleted file mode 100644 index f7800594..00000000 --- a/chapters/VK_KHR_mir_surface/platformCreateSurface_mir.txt +++ /dev/null @@ -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 - <>). - * 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. diff --git a/chapters/VK_KHR_mir_surface/platformQuerySupport_mir.txt b/chapters/VK_KHR_mir_surface/platformQuerySupport_mir.txt deleted file mode 100644 index 358e6227..00000000 --- a/chapters/VK_KHR_mir_surface/platformQuerySupport_mir.txt +++ /dev/null @@ -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[] --- diff --git a/chapters/VK_KHR_surface/wsi.txt b/chapters/VK_KHR_surface/wsi.txt index 53319ed3..80e432f2 100644 --- a/chapters/VK_KHR_surface/wsi.txt +++ b/chapters/VK_KHR_surface/wsi.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 diff --git a/chapters/VK_KHR_swapchain/wsi.txt b/chapters/VK_KHR_swapchain/wsi.txt index 4b57c1c4..ce35e888 100644 --- a/chapters/VK_KHR_swapchain/wsi.txt +++ b/chapters/VK_KHR_swapchain/wsi.txt @@ -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[] diff --git a/chapters/VK_NVX_device_generated_commands/generation.txt b/chapters/VK_NVX_device_generated_commands/generation.txt index 45465816..5d76ce0d 100644 --- a/chapters/VK_NVX_device_generated_commands/generation.txt +++ b/chapters/VK_NVX_device_generated_commands/generation.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. diff --git a/chapters/VK_NVX_device_generated_commands/indirectcommands.txt b/chapters/VK_NVX_device_generated_commands/indirectcommands.txt index 725f267b..bf3b3447 100644 --- a/chapters/VK_NVX_device_generated_commands/indirectcommands.txt +++ b/chapters/VK_NVX_device_generated_commands/indirectcommands.txt @@ -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'] diff --git a/chapters/VK_NVX_device_generated_commands/objecttable.txt b/chapters/VK_NVX_device_generated_commands/objecttable.txt index 7c1d64fc..1646a2c6 100644 --- a/chapters/VK_NVX_device_generated_commands/objecttable.txt +++ b/chapters/VK_NVX_device_generated_commands/objecttable.txt @@ -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. diff --git a/chapters/VK_NV_device_diagnostic_checkpoints/device_diagnostic_checkpoints.txt b/chapters/VK_NV_device_diagnostic_checkpoints/device_diagnostic_checkpoints.txt index fa1dcc42..82c1c1e4 100644 --- a/chapters/VK_NV_device_diagnostic_checkpoints/device_diagnostic_checkpoints.txt +++ b/chapters/VK_NV_device_diagnostic_checkpoints/device_diagnostic_checkpoints.txt @@ -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. -- diff --git a/chapters/VK_NV_external_memory_capabilities/external_image_format.txt b/chapters/VK_NV_external_memory_capabilities/external_image_format.txt index 86f12ea1..e0b84e7c 100644 --- a/chapters/VK_NV_external_memory_capabilities/external_image_format.txt +++ b/chapters/VK_NV_external_memory_capabilities/external_image_format.txt @@ -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. -- diff --git a/chapters/VK_NV_external_memory_win32/import_memory_win32.txt b/chapters/VK_NV_external_memory_win32/import_memory_win32.txt index dc7189f9..cba0e4e3 100644 --- a/chapters/VK_NV_external_memory_win32/import_memory_win32.txt +++ b/chapters/VK_NV_external_memory_win32/import_memory_win32.txt @@ -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. -- diff --git a/chapters/VK_NV_mesh_shader/drawing.txt b/chapters/VK_NV_mesh_shader/drawing.txt index 5201180c..49aa462b 100644 --- a/chapters/VK_NV_mesh_shader/drawing.txt +++ b/chapters/VK_NV_mesh_shader/drawing.txt @@ -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[] **** diff --git a/chapters/VK_NV_ray_tracing/raytracing-resources.txt b/chapters/VK_NV_ray_tracing/raytracing-resources.txt index 26054c1d..a0abf5d3 100644 --- a/chapters/VK_NV_ray_tracing/raytracing-resources.txt +++ b/chapters/VK_NV_ray_tracing/raytracing-resources.txt @@ -53,7 +53,7 @@ fname:vkCmdCopyAccelerationStructureNV. Acceleration structure creation uses the count and type information from the geometries, but does not use the data references in the structures. - + include::../../validity/protos/vkCreateAccelerationStructureNV.txt[] -- @@ -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,24 +92,24 @@ 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 geometric data to build the acceleration structure with fname:vkCmdBuildAccelerationStructureNV. - + .Valid Usage **** * [[VUID-VkAccelerationStructureInfoNV-geometryCount-02422]] @@ -131,12 +131,13 @@ fname:vkCmdBuildAccelerationStructureNV. * [[VUID-VkAccelerationStructureInfoNV-compactedSize-02427]] If pname:compactedSize is not `0` then both pname:geometryCount and pname:instanceCount must: be `0` - + **** 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 @@ -165,7 +166,7 @@ include::../../api/enums/VkBuildAccelerationStructureFlagBitsNV.txt[] this acceleration structure should minimize the size of scratch memory and final result build, potentially at the expense of build time or trace performance. - + ename:VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV and ename:VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV must: not be used in the same flags. @@ -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,15 +221,14 @@ 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. If this bit is absent an implementation may: invoke an any hit shader more than once for this geometry. - --- +-- [open,refpage='VkGeometryDataNV',desc='Structure specifying geometry in a bottom-level acceleration structure',type='structs'] -- @@ -277,7 +275,7 @@ If pname:indexType is ename:VK_INDEX_TYPE_NONE_NV, then this structure describes a set of triangles determined by pname:vertexCount. Otherwise, this structure describes a set of indexed triangles determined by pname:indexCount. - + .Valid Usage **** * [[VUID-VkGeometryTrianglesNV-vertexOffset-02428]] @@ -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'] -- diff --git a/chapters/VK_NV_ray_tracing/raytracing.txt b/chapters/VK_NV_ray_tracing/raytracing.txt index e75ad48b..f7c6091a 100644 --- a/chapters/VK_NV_ray_tracing/raytracing.txt +++ b/chapters/VK_NV_ray_tracing/raytracing.txt @@ -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. -- diff --git a/chapters/clears.txt b/chapters/clears.txt index a6189c86..f2af48e5 100644 --- a/chapters/clears.txt +++ b/chapters/clears.txt @@ -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 <>. - 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 <>. - 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 <> 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[] diff --git a/chapters/cmdbuffers.txt b/chapters/cmdbuffers.txt index 07f12a52..8470317d 100644 --- a/chapters/cmdbuffers.txt +++ b/chapters/cmdbuffers.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: diff --git a/chapters/debugging.txt b/chapters/debugging.txt index 59f7cd94..12a5b7b2 100644 --- a/chapters/debugging.txt +++ b/chapters/debugging.txt @@ -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[] |==== -- diff --git a/chapters/descriptorsets.txt b/chapters/descriptorsets.txt index 613fe9a9..6af3b4b9 100644 --- a/chapters/descriptorsets.txt +++ b/chapters/descriptorsets.txt @@ -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. -- diff --git a/chapters/devsandqueues.txt b/chapters/devsandqueues.txt index d386bd3a..179370d3 100644 --- a/chapters/devsandqueues.txt +++ b/chapters/devsandqueues.txt @@ -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 <>. -- 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 + `<>` 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 diff --git a/chapters/dispatch.txt b/chapters/dispatch.txt index 63b08301..c698b944 100644 --- a/chapters/dispatch.txt +++ b/chapters/dispatch.txt @@ -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[] **** diff --git a/chapters/drawing.txt b/chapters/drawing.txt index 456296ef..60d82711 100644 --- a/chapters/drawing.txt +++ b/chapters/drawing.txt @@ -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'] -- diff --git a/chapters/features.txt b/chapters/features.txt index 0fc0a083..2428c08a 100644 --- a/chapters/features.txt +++ b/chapters/features.txt @@ -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 <> 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 <>. -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 <>. @@ -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 <> 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 <> 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 <> 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 | `<>` | code:uint32_t | pname:maxTransformFeedbackBufferDataSize | `<>` | code:uint32_t | pname:maxTransformFeedbackBufferDataStride | `<>` -| code:VkBool32 | pname:transformFeedbackQueries | `<>` -| code:VkBool32 | pname:transformFeedbackStreamsLinesTriangles | `<>` -| code:VkBool32 | pname:transformFeedbackRasterizationStreamSelect | `<>` -| code:VkBool32 | pname:transformFeedbackDraw | `<>` +| basetype:VkBool32 | pname:transformFeedbackQueries | `<>` +| basetype:VkBool32 | pname:transformFeedbackStreamsLinesTriangles | `<>` +| basetype:VkBool32 | pname:transformFeedbackRasterizationStreamSelect | `<>` +| basetype:VkBool32 | pname:transformFeedbackDraw | `<>` 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:: <> 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:: <>, respectively, otherwise both members must: be `0`. @@ -5687,7 +5709,7 @@ Depth/stencil formats have more relaxed requirements as discussed <>. 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 <>, 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[] diff --git a/chapters/fragops.txt b/chapters/fragops.txt index 7628974f..efcba884 100644 --- a/chapters/fragops.txt +++ b/chapters/fragops.txt @@ -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. -- diff --git a/chapters/framebuffer.txt b/chapters/framebuffer.txt index 96206581..f63a51b0 100644 --- a/chapters/framebuffer.txt +++ b/chapters/framebuffer.txt @@ -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. -- diff --git a/chapters/fundamentals.txt b/chapters/fundamentals.txt index 467344f2..079045ae 100644 --- a/chapters/fundamentals.txt +++ b/chapters/fundamentals.txt @@ -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 diff --git a/chapters/fxvertex.txt b/chapters/fxvertex.txt index ccf7315e..773bedc3 100644 --- a/chapters/fxvertex.txt +++ b/chapters/fxvertex.txt @@ -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. -- diff --git a/chapters/geometry.txt b/chapters/geometry.txt index b618db8d..c680f77b 100644 --- a/chapters/geometry.txt +++ b/chapters/geometry.txt @@ -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 diff --git a/chapters/initialization.txt b/chapters/initialization.txt index 154c146f..bbdcd364 100644 --- a/chapters/initialization.txt +++ b/chapters/initialization.txt @@ -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. -- diff --git a/chapters/interfaces.txt b/chapters/interfaces.txt index c2a4453b..94ba8d9e 100755 --- a/chapters/interfaces.txt +++ b/chapters/interfaces.txt @@ -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. diff --git a/chapters/memory.txt b/chapters/memory.txt index 07926ec2..ac6640bd 100644 --- a/chapters/memory.txt +++ b/chapters/memory.txt @@ -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. +`<>` 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[] diff --git a/chapters/pipelines.txt b/chapters/pipelines.txt index aced2ee1..b8cdaa5c 100644 --- a/chapters/pipelines.txt +++ b/chapters/pipelines.txt @@ -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. -- diff --git a/chapters/primsrast.txt b/chapters/primsrast.txt index d1fdf5f6..573c54ce 100644 --- a/chapters/primsrast.txt +++ b/chapters/primsrast.txt @@ -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 <>. -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 @@ -1338,19 +1339,19 @@ vertex index value, the value obtained is undefined. [[primsrast-barycentric-order-table]] [options="header"] |====== -| Primitive Topology | Vertex 0 | Vertex 1 | Vertex 2 -| ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST | i | - | - -| ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST | 2i | 2i+1 | - -| ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP | i | i+1 | - -| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST | 3i | 3i+1 | 3i+2 -| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP (even) | i | i+1 | i+2 -| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP (odd) | i | i+2 | i+1 -| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_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 +| Primitive Topology | Vertex 0 | Vertex 1 | Vertex 2 +| ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST | i | - | - +| ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST | 2i | 2i+1 | - +| ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP | i | i+1 | - +| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST | 3i | 3i+1 | 3i+2 +| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP (even) | i | i+1 | i+2 +| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP (odd) | i | i+2 | i+1 +| ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN | i+1 | i+2 | 0 +| 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. -- diff --git a/chapters/queries.txt b/chapters/queries.txt index b9557b21..b41dcb22 100644 --- a/chapters/queries.txt +++ b/chapters/queries.txt @@ -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. -- @@ -380,7 +380,7 @@ include::../api/protos/vkCmdBeginQueryIndexedEXT.txt[] The fname:vkCmdBeginQueryIndexedEXT command operates the same as the flink:vkCmdBeginQuery command, except that it also accepts a query type specific pname:index parameter. - + .Valid Usage **** * [[VUID-vkCmdBeginQueryIndexedEXT-queryPool-02329]] @@ -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 diff --git a/chapters/renderpass.txt b/chapters/renderpass.txt index 5909e88b..2a492c2a 100644 --- a/chapters/renderpass.txt +++ b/chapters/renderpass.txt @@ -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. -- diff --git a/chapters/resources.txt b/chapters/resources.txt index ec2ad843..6f2e1610 100644 --- a/chapters/resources.txt +++ b/chapters/resources.txt @@ -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]] diff --git a/chapters/samplers.txt b/chapters/samplers.txt index a5cdbb0b..56bf233a 100644 --- a/chapters/samplers.txt +++ b/chapters/samplers.txt @@ -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. -- diff --git a/chapters/shaders.txt b/chapters/shaders.txt index 5cb3edb3..ab54ba9f 100644 --- a/chapters/shaders.txt +++ b/chapters/shaders.txt @@ -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. -- diff --git a/chapters/sparsemem.txt b/chapters/sparsemem.txt index a600e88c..4d04ddf1 100644 --- a/chapters/sparsemem.txt +++ b/chapters/sparsemem.txt @@ -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'] diff --git a/chapters/synchronization.txt b/chapters/synchronization.txt index 11087217..ffecb0d3 100644 --- a/chapters/synchronization.txt +++ b/chapters/synchronization.txt @@ -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]] @@ -669,7 +669,7 @@ For ray tracing acceleration structure operations, only one pipeline stage occurs, so no order is guaranteed: * ename:VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV - + endif::VK_NV_ray_tracing[] [[synchronization-access-types]] @@ -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 <> 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 <> 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. -- diff --git a/chapters/tessellation.txt b/chapters/tessellation.txt index 333fb2f0..4504e11e 100644 --- a/chapters/tessellation.txt +++ b/chapters/tessellation.txt @@ -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. -- diff --git a/chapters/textures.txt b/chapters/textures.txt index fc1c5a4c..6c9a215a 100644 --- a/chapters/textures.txt +++ b/chapters/textures.txt @@ -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: diff --git a/chapters/vertexpostproc.txt b/chapters/vertexpostproc.txt index 9809937d..b0221a61 100644 --- a/chapters/vertexpostproc.txt +++ b/chapters/vertexpostproc.txt @@ -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. -- diff --git a/checkLinks.py b/checkLinks.py index 722d8295..92580c56 100755 --- a/checkLinks.py +++ b/checkLinks.py @@ -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,8 +300,9 @@ def checkLinks(infile, follow = False, included = False): elif (curFuncs and findParam(value, curFuncs)): True else: - warning('parameter', value, 'not found. curStruct =', - curStruct, 'curFuncs =', curFuncs) + if paramCheck: + warning('parameter', value, 'not found. curStruct =', + curStruct, 'curFuncs =', curFuncs) else: # This is a logic error error('unknown tag', tag + ':' + value) @@ -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) diff --git a/genRelease b/genRelease index da8a132d..1d70a3f7 100755 --- a/genRelease +++ b/genRelease @@ -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' diff --git a/images/pipeline.svg b/images/pipeline.svg index b657c3a3..b5ab900f 100644 --- a/images/pipeline.svg +++ b/images/pipeline.svg @@ -317,22 +317,6 @@ id="path7064" inkscape:connector-curvature="0" /> - - - image/svg+xml - + @@ -801,15 +785,10 @@ sodipodi:role="line">Rasterization - @@ -884,7 +863,7 @@ sodipodi:nodetypes="cccccc" /> @@ -908,7 +887,7 @@ sodipodi:nodetypes="cc" /> diff --git a/images/pipelinemesh.pdf b/images/pipelinemesh.pdf deleted file mode 100644 index d22736df..00000000 Binary files a/images/pipelinemesh.pdf and /dev/null differ diff --git a/images/pipelinemesh.pptx b/images/pipelinemesh.pptx deleted file mode 100644 index 7542c133..00000000 Binary files a/images/pipelinemesh.pptx and /dev/null differ diff --git a/images/pipelinemesh.svg b/images/pipelinemesh.svg index eaa9bbc5..5fafa265 100644 --- a/images/pipelinemesh.svg +++ b/images/pipelinemesh.svg @@ -7,4076 +7,1781 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="874.4707" + height="448" + viewBox="0 0 874.4707 448" version="1.1" - id="svg10373" - xml:space="preserve" - width="1344" - height="1344" - viewBox="0 0 1344 1344" + id="svg8" sodipodi:docname="pipelinemesh.svg" - inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + Legend -Color Attachment -Draw -Vertex Shader -Tessellation Control Shader -Tessellation Primitive Generator -Geometry Shader -Rasterization -Fragment Shader -Indirect Buffer Binding -Color/Blending Operations -Storage Image -Storage Texel Buffer -Storage Buffer -Sampled Image -Uniform Texel Buffer -Index Buffer Binding -Vertex Buffer Binding -Image -Buffer -Programmable Stage -Fixed Function Stage -Tessellation Evaluation Shader -DrawMeshTasks -Task Shader -Uniform Buffer -Input Attachment -Input Assembler -Tessellation Assembler -Geometry Assembler -Primitive Assembler -Pre -- -Fragment Operations -Fragment Assembler -Post -- -Fragment Operations -Task Assembler -Depth/Stencil Attachment -Constants -Push Constants -Descriptor Sets -Framebuffer -Mesh Shader -Mesh Assembler -Primitive Shading Pipeline -Mesh Shading Pipeline -Dispatch -Compute Shader -Compute Assembler -Compute Pipeline - \ No newline at end of file + id="layer1" + transform="translate(37.965418,2.1124474)"> + + + + + + + + Vertex Shader + Draw + Input Assembler + Tessellation Control Shader + Tessellation Primitive Generator + Tessellation Evaluation Shader + Rasterization + + + Indirect Buffer + + + + Descriptor Sets + + + + + + + + + + + + + + + + + + + + + + + + + Legend + + + + + + + Geometry Shader + + + + Vertex Post-Processing + + + + + + + + Early Per-Fragment Tests + Fragment Shader + + Late Per-Fragment Tests + + + Blending + + + Index Buffer + Vertex Buffers + + + + + + + + Push Constants + Uniform Buffers + Uniform Texel Buffers + Sampled Images + Storage Buffers + Storage Texel Buffers + Storage Images + + Task Shader + + DrawMeshTasks + + Depth/Stencil Attachments + + Input Attachments + + Color Attachments + + Fixed Function Stage + + Shader Stage + + Storage Images + + dastre + Compute Shader + + Dispatch + + + Task Assembler + + Mesh Assembler + Mesh Shader + + + + + + + + + + + + diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 4cd8ed51..22cd3e65 100644 --- a/include/vulkan/vulkan_core.h +++ b/include/vulkan/vulkan_core.h @@ -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" diff --git a/makeAllExts b/makeAllExts index 5d040885..0d8d0577 100755 --- a/makeAllExts +++ b/makeAllExts @@ -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 diff --git a/reflow_count.py b/reflow_count.py index b4efe88b..b35cb7a4 100644 --- a/reflow_count.py +++ b/reflow_count.py @@ -1,2 +1,2 @@ # The value to start tagging VU statements at, unless overridden by -nextvu -startVUID = 2498 +startVUID = 2506 diff --git a/style/markup.txt b/style/markup.txt index 9b98aedb..b419df87 100644 --- a/style/markup.txt +++ b/style/markup.txt @@ -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 <>. | 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 -> diff --git a/xml/pygenerator.py b/xml/pygenerator.py index da495e06..31b02968 100644 --- a/xml/pygenerator.py +++ b/xml/pygenerator.py @@ -145,12 +145,16 @@ class PyOutputGenerator(OutputGenerator): if (category == 'struct' or category == 'union'): self.genStruct(typeinfo, name, alias) else: - # Extract the type name - # (from self.genOpts). Copy other text through unchanged. - # If the resulting text is an empty string, don't emit it. - count = len(noneStr(typeElem.text)) - for elem in typeElem: - count += len(noneStr(elem.text)) + len(noneStr(elem.tail)) + if alias: + # Always emit an alias + count = 1 + else: + # Extract the type name + # (from self.genOpts). Copy other text through unchanged. + # If the resulting text is an empty string, don't emit it. + count = len(noneStr(typeElem.text)) + for elem in typeElem: + count += len(noneStr(elem.text)) + len(noneStr(elem.tail)) if (count > 0): if (category == 'bitmask'): requiredEnum = typeElem.get('requires') diff --git a/xml/vk.xml b/xml/vk.xml index 24cc3ce7..b0ce893d 100644 --- a/xml/vk.xml +++ b/xml/vk.xml @@ -146,7 +146,7 @@ server. // Vulkan 1.1 version number #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 91 +#define VK_HEADER_VERSION 92 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; @@ -7176,6 +7176,7 @@ server. + @@ -9363,11 +9364,8 @@ server. - - - - - + + @@ -10123,5 +10121,23 @@ server. + + + + + + + + + + + + + + + + + +