Change log for March 31, 2017 Vulkan 1.0.46 spec update:

* Bump API patch number and header version number to 46 for this update.

Github Issues:

  * Add language to the <<fundamentals-validusage-enums, Valid Usage for
    Enumerated Types>> section allowing values to be returned from Vulkan
    that are not present in extensions explicitly enabled by the
    application, similar to existing language for bit flags in the
    <<fundamentals-validusage-flags, Valid Usage for Flags>> section (public
    issue 442).
  * *Important*: run `gem update --pre asciidoctor-pdf` before trying to
    build this version of the spec - 1.5.0.alpha15 is required for this
    change. Removes the monkey patch currently used to draw valid usage
    blocks across multiple pages which had numerous issues. A fixed version
    was incorporated into Asciidoctor-PDF for the latest release, so the
    monkey patch or any variant thereof is no longer required (public issue
    465).

Internal Issues:

  * Add ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
    to `VK_EXT_debug_report` extension
  * Fix ptext:pNext member of
    slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT to be a non-const
    pointer. Properties structures return values, so the chain should be
    non-const.
  * Explicitly remove gl_NumSamples from the `GL_KHR_vulkan_glsl` extension,
    against 1.0 (internal issue 612).
  * Add Valid Usage statements requiring that each structure type valid in a
    ptext:pNext chain must: not appear more than once in a chain (internal
    issue 752).
  * Use ename:VK_USE_PLATFORM_WIN32_KHX in the
    `VK_KHX_external_memory_win32` extension, rather than etext:_KHR
    (internal issue 754).

New Extensions:

  * `VK_KHR_incremental_present`
This commit is contained in:
Jon Leech 2017-03-31 16:06:31 -07:00
parent e8cbffbd25
commit f985a50c1f
22 changed files with 490 additions and 175 deletions

View File

@ -8,6 +8,49 @@ public issues.
-----------------------------------------------------
Change log for March 31, 2017 Vulkan 1.0.46 spec update:
* Bump API patch number and header version number to 46 for this update.
Github Issues:
* Add language to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section allowing values to be returned from Vulkan
that are not present in extensions explicitly enabled by the
application, similar to existing language for bit flags in the
<<fundamentals-validusage-flags, Valid Usage for Flags>> section (public
issue 442).
* *Important*: run `gem update --pre asciidoctor-pdf` before trying to
build this version of the spec - 1.5.0.alpha15 is required for this
change. Removes the monkey patch currently used to draw valid usage
blocks across multiple pages which had numerous issues. A fixed version
was incorporated into Asciidoctor-PDF for the latest release, so the
monkey patch or any variant thereof is no longer required (public issue
465).
Internal Issues:
* Add ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
to `VK_EXT_debug_report` extension
* Fix ptext:pNext member of
slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT to be a non-const
pointer. Properties structures return values, so the chain should be
non-const.
* Explicitly remove gl_NumSamples from the `GL_KHR_vulkan_glsl` extension,
against 1.0 (internal issue 612).
* Add Valid Usage statements requiring that each structure type valid in a
ptext:pNext chain must: not appear more than once in a chain (internal
issue 752).
* Use ename:VK_USE_PLATFORM_WIN32_KHX in the
`VK_KHX_external_memory_win32` extension, rather than etext:_KHR
(internal issue 754).
New Extensions:
* `VK_KHR_incremental_present`
-----------------------------------------------------
Change log for March 24, 2017 Vulkan 1.0.45 spec update:
* Bump API patch number and header version number to 45 for this update.
@ -330,10 +373,10 @@ Other Issues:
(ename:VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME).
* Add new +VK_EXT_SMPTE_2086_metadata+ extension.
* In the <<platformCreateSurface_xlib,Xlib Surface>> section of the
+VK_KHR_xlib_surface+ specification, add language warning users that
`VK_KHR_xlib_surface` specification, add language warning users that
they always need to call code:XinitThreads.
* Use the term "presentable image" (rather than "swapchain image")
consistently in +VK_KHR_swapchain+ and related extensions, and add a
consistently in `VK_KHR_swapchain` and related extensions, and add a
glossary term defining it.
* Relocate the valid usage for samples of
flink:vkGetPhysicalDeviceSparseImageFormatProperties2KHR::pname:pFormatInfo
@ -877,7 +920,7 @@ Change log for September 6, 2016 Vulkan 1.0.26 spec update:
Github Issues:
* Bring sample code in the +VK_KHR_surface+ and +VK_KHR_swapchain+
* Bring sample code in the `VK_KHR_surface` and `VK_KHR_swapchain`
extension summary appendices up to date, and note they will be replaced
with pointers to the LunarG SDK examples in the future (public issue
279).

View File

@ -33,8 +33,8 @@ Status
Version
Last Modified Date: 13-Feb-2017
Revision: 36
Last Modified Date: 26-Mar-2017
Revision: 37
Number
@ -67,7 +67,7 @@ Overview
* shared and packed block layouts
* the already deprecated texturing functions (e.g., texture2D())
* compatibility-mode-only features
* DepthRangeParameters
* gl_DepthRangeParameters and gl_NumSamples
* gl_VertexID and gl_InstanceID
The following features are added:
@ -1125,6 +1125,8 @@ Changes to Chapter 7 of the OpenGL Shading Language Specification
"const int gl_MaxInputAttachments = 1;"
Remove section 7.4 Built-In Uniform State (there is none in Vulkan).
Changes to Chapter 8 of the OpenGL Shading Language Specification
Add the following ES language to desktop versions of the specification:
@ -1355,6 +1357,7 @@ Revision History
Rev. Date Author Changes
---- ----------- ------- --------------------------------------------
37 26-Mar-2017 JohnK Fix glslang issue #369: remove gl_NumSamples.
36 13-Feb-2017 JohnK Fix public bug 428: allow anonymous
push_constant blocks.
35 07-Feb-2017 JohnK Add 'offset' and 'align' to all versions

View File

@ -86,7 +86,7 @@ VERBOSE =
# $(EXTENSIONS))
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
SPECREVISION = 1.0.45
SPECREVISION = 1.0.46
# Spell out RFC2822 format as not all date commands support -R
SPECDATE = $(shell echo `date -u "+%a, %d %b %Y %T %z"`)
@ -123,11 +123,7 @@ ADOCHTMLEXTS = -r $(CURDIR)/config/katex_replace.rb
KATEXDIR = katex
ADOCHTMLOPTS = $(ADOCHTMLEXTS) -a katexpath=$(KATEXDIR)
# The monkey patch for asciidoctor-pdf fixes issue #259
# (https://github.com/asciidoctor/asciidoctor-pdf/issues/259).
# I've submitted a pull request to fix it, once it goes into a gem release, we'll remove this.
ADOCPDFEXTS = -r asciidoctor-pdf -r asciidoctor-mathematical \
-r $(CURDIR)/config/asciidoctor-pdf-monkeypatch.rb --trace
ADOCPDFEXTS = -r asciidoctor-pdf -r asciidoctor-mathematical
ADOCPDFOPTS = $(ADOCPDFEXTS) -a mathematical-format=svg \
-a imagesoutdir=$(PDFMATHDIR)

View File

@ -353,7 +353,7 @@ parts you don't use) completely before trying to install.
* Asciidoctor (asciidoctor, version: 1.5.5)
* Coderay (coderay, version 1.1.1)
* Asciidoctor PDF (asciidoctor-pdf, version: 1.5.0.alpha13)
* Asciidoctor PDF (asciidoctor-pdf, version: 1.5.0.alpha15)
* Asciidoctor Mathematical (asciidoctor-mathematical, version 0.2.2)
* https://github.com/asciidoctor/asciidoctor-mathematical#dependencies[Dependencies
for asciidoctor-mathematical] (There are a lot of these!)
@ -361,7 +361,16 @@ parts you don't use) completely before trying to install.
This is cached under `doc/specs/vulkan/katex/`, and need not be
installed from github.
Only the `asciidoctor` and `coderay` gems is needed if you don't intend to
.Note
[NOTE]
====
Asciidoctor-pdf versions before `1.5.0.alpha15` have issues with multi-page
valid usage blocks, in that the background only renders for the first page.
`alpha.15` fixes this issue (as well as a few others); do not use prior
versions.
====
Only the `asciidoctor` and `coderay` gems are needed if you don't intend to
build PDF versions of the spec and supporting documents.
[NOTE]

View File

@ -172,3 +172,6 @@ We should probably add some.
* Revision 5, 2017-01-31 (Baldur Karlsson)
- Moved definition of ename:VkDebugReportObjectTypeEXT from debug marker
chapter
* Revision 6, 2017-01-31 (Baldur Karlsson)
- Added VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT

View File

@ -0,0 +1,115 @@
// Copyright (c) 2014-2017 The Khronos Group Inc.
// Copyright notice at https://www.khronos.org/registry/speccopyright.html
[[VK_KHR_incremental_present]]
== VK_KHR_incremental_present
*Name String*::
+VK_KHR_incremental_present+
*Extension Type*::
Device extension
*Registered Extension Number*::
85
*Last Modified Date*::
2016-11-02
*Revision*::
1
*IP Status*::
No known IP claims.
*Dependencies*::
- This extension is written against version 1.0 of the Vulkan API.
- Requires +VK_KHR_swapchain+ (revision 68).
*Contributors*::
- Ian Elliott, Google
- Jesse Hall, Google
- Alon Or-bach, Samsung
- James Jones, NVIDIA
- Daniel Rakos, AMD
- Ray Smith, ARM
- Mika Isojarvi, Google
- Jeff Juliano, NVIDIA
- Jeff Bolz, NVIDIA
*Contacts*::
- Ian Elliott, Google
This device extension extends slink:vkQueuePresentKHR, from the
+VK_KHR_swapchain+ extension, allowing an application to specify a list of
rectangular, modified regions of each image to present.
This should be used in situations where an application is only changing a
small portion of the presentable images within a swapchain, since it enables
the presentation engine to avoid wasting time presenting parts of the
surface that haven't changed.
This extension is leveraged from the +EGL_KHR_swap_buffers_with_damage+
extension.
=== New Object Types
None.
=== New Enum Constants
* Extending ename:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR
=== New Enums
None.
=== New Structures
* slink:VkRectLayerKHR
* slink:VkPresentRegionKHR
* slink:VkPresentRegionsKHR
=== New Functions
None.
=== Examples
None.
=== Issues
1) How should we handle steroescopic-3D swapchains? We need to add a layer
for each rectangle.
One approach is to create another struct that contains the slink:VkRect2D
plus layer, and have slink:VkPresentRegionsKHR point to an array of that
struct.
Another approach is to have two parallel arrays, pRectangles and pLayers,
where pRectangles[i] and pLayers[i] must be used together.
Which approach should we use, and if the array of a new structure, what
should that be called?
*RESOLVED*: Create a new structure, which is a slink:VkRect2D plus a layer,
and will be called slink:VkRectLayerKHR.
2) Where is the origin of the slink:VkRectLayerKHR?
*RESOLVED*: The upper left corner of the presentable image(s) of the
swapchain, per the definition of framebuffer coordinates.
3) Does the rectangular region, slink:VkRectLayerKHR, specify pixels of the
swapchain's image(s), or of the surface?
*RESOLVED*: Of the image(s).
Some presentation engines may scale the pixels of a swapchain's image(s) to
the size of the surface.
The size of the swapchain's image(s) will be consistent, where the size of
the surface may vary over time.
4) What if all of the rectangles for a given swapchain contain a width
and/or height of zero?
*RESOLVED*: The application is indicating that no pixels changed since the
last present.
The presentation engine may use such a hint and not update any pixels for
the swapchain.
However, all other semantics of flink:vkQueuePresentKHR must still be
honored, including waiting for semaphores to signal.
=== Version History
* Revision 1, 2016-11-02 (Ian Elliott)
- Internal revisions

View File

@ -82,6 +82,10 @@ ifdef::VK_KHR_get_physical_device_properties2[]
include::VK_KHR_get_physical_device_properties2.txt[]
endif::VK_KHR_get_physical_device_properties2[]
ifdef::VK_KHR_incremental_present[]
include::VK_KHR_incremental_present.txt[]
endif::VK_KHR_incremental_present[]
ifdef::VK_KHR_maintenance1[]
include::VK_KHR_maintenance1.txt[]
endif::VK_KHR_maintenance1[]
@ -292,7 +296,7 @@ endif::VK_IMG_filter_cubic[]
// :leveloffset: 1
// == MoltenVK +MVK+ Vendor Extensions
// == MoltenVK `MVK` Vendor Extensions
//
// :leveloffset: 2

View File

@ -195,6 +195,10 @@ include::../api/enums/VkDebugReportObjectTypeEXT.txt[]
sname:VkObjectTableNVX.
* ename:VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT is a
sname:VkIndirectCommandsLayoutNVX.
ifdef::VK_KHR_descriptor_update_template[]
* ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT is
a sname:VkDescriptorUpdateTemplateKHR.
endif::VK_KHR_descriptor_update_template[]
[NOTE]
.Note

View File

@ -0,0 +1,91 @@
// Copyright (c) 2014-2017 The Khronos Group Inc.
// Copyright notice at https://www.khronos.org/registry/speccopyright.html
// refBegin VkPresentRegionsKHR - Structure hint of rectangular regions changed by vkQueuePresentKHR
When the +VK_KHR_incremental_present+ extension is enabled, additional
fields can: be specified that allow an application to specify that only
certain rectangular regions of the presentable images of a swapchain are
changed.
This is an optimization hint that a presentation engine may: use to only
update the region of a surface that is actually changing.
The application still must: ensure that all pixels of a presented image
contain the desired values, in case the presentation engine ignores this
hint.
An application can: provide this hint by including the
sname:VkPresentRegionsKHR structure in the pname:pNext chain of the
sname:VkPresentInfoKHR structure.
The sname:VkPresentRegionsKHR structure is defined as:
include::../../api/structs/VkPresentRegionsKHR.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:swapchainCount is the number of swapchains being presented to by
this command.
* pname:pRegions is `NULL` or a pointer to an array of
sname:VkPresentRegionKHR elements with pname:swapchainCount entries.
If not `NULL`, each element of pname:pRegions contains the region that
has changed since the last present to the swapchain in the corresponding
entry in the sname:VkPresentInfoKHR::pname:pSwapchains array.
.Valid Usage
****
* pname:swapchainCount must: be the same value as
sname:VkPresentInfoKHR::pname:swapchainCount, where
sname:VkPresentInfoKHR is in the pNext-chain of this
sname:VkPresentRegionsKHR structure.
****
include::../../validity/structs/VkPresentRegionsKHR.txt[]
// refBegin VkPresentRegionKHR - Structure containing rectangular region changed by vkQueuePresentKHR for a given VkImage
For a given image and swapchain, the region to present is specified by the
sname:VkPresentRegionKHR structure, which is defined as:
include::../../api/structs/VkPresentRegionKHR.txt[]
* pname:rectangleCount is the number of rectangles in pname:pRectangles,
or zero if the entire image has changed and should be presented.
* pname:pRectangles is either `NULL` or a pointer to an array of
sname:VkRectLayerKHR structures.
The sname:VkRectLayerKHR structure is the framebuffer coordinates, plus
layer, of a portion of a presentable image that has changed and must: be
presented.
If non-`NULL`, each entry in pname:pRectangles is a rectangle of the
given image that has changed since the last image was presented to the
given swapchain.
include::../../validity/structs/VkPresentRegionKHR.txt[]
// refBegin VkRectLayerKHR - Structure containing a rectangle, including layer, changed by vkQueuePresentKHR for a given VkImage
The sname:VkRectLayerKHR structure is defined as:
include::../../api/structs/VkRectLayerKHR.txt[]
* pname:offset is the origin of the rectangle, in pixels.
* pname:extent is the size of the rectangle, in pixels.
* pname:layer is the layer of the image.
For images with only one layer, the value of pname:layer must: be 0.
.Valid Usage
****
* The sum of pname:offset and pname:extent must: be no greater than the
pname:imageExtent member of the sname:VkSwapchainCreateInfoKHR structure
given to flink:vkCreateSwapchainKHR.
* pname:layer must: be less than pname:imageArrayLayers member of the
sname:VkSwapchainCreateInfoKHR structure given to
flink:vkCreateSwapchainKHR.
****
include::../../validity/structs/VkRectLayerKHR.txt[]
Some platforms allow the size of a surface to change, and then scale the
pixels of the image to fit the surface.
VkRectLayerKHR specifies pixels of the swapchain's image(s), which will be
constant for the life of the swapchain.
// refEnd VkRectLayerKHR

View File

@ -614,7 +614,8 @@ E & =
+++++++++++++++++++
latexmath:[\alpha = 1.099 \text{ and } \beta = 0.018 \text{ for 10-bits and
less per sample system (the values given in Rec. 709)}] +
less per sample system (the values given in Rec.
709)}] +
latexmath:[\alpha = 1.0993 \text{ and } \beta = 0.0181 \text{ for 12-bits
per sample system}]

View File

@ -842,6 +842,10 @@ include::../../api/structs/VkPresentInfoKHR.txt[]
include::../../validity/structs/VkPresentInfoKHR.txt[]
ifdef::VK_KHR_incremental_present[]
include::../VK_KHR_incremental_present/wsi.txt[]
endif::VK_KHR_incremental_present[]
ifdef::VK_KHR_display_swapchain[]
include::../VK_KHR_display_swapchain/display_swapchain_present.txt[]
endif::VK_KHR_display_swapchain[]

View File

@ -717,6 +717,20 @@ A enumerant is valid if:
enumerated type, which are suffixed with etext:_BEGIN_RANGE,
etext:_END_RANGE, etext:_RANGE_SIZE or etext:_MAX_ENUM.
Any enumerated type returned from a query command or otherwise output from
Vulkan to the application must: not have a reserved value.
Reserved values are values not defined by any extension for that enumerated
type.
[NOTE]
.Note
====
This language is intended to accomodate cases such as "`hidden`" extensions
known only to driver internals, or layers enabling extensions without
knowledge of the application, without allowing return of values not defined
by any extension.
====
[[fundamentals-validusage-flags]]
==== Valid Usage for Flags
@ -752,8 +766,9 @@ A bit flag is valid if:
For example, in some cases, certain bit flags or combinations of bit
flags are mutually exclusive.
Any etext:Vk*Flags member or parameter used in the API as an output may:
contain bit flags undefined in its corresponding etext:FlagBits type.
Any etext:Vk*Flags member or parameter returned from a query command or
otherwise output from Vulkan to the application may: contain bit flags
undefined in its corresponding etext:Vk*FlagBits type.
An application cannot: rely on the state of these unspecified bits.
@ -792,6 +807,10 @@ The set of structures connected by ptext:pNext pointers is referred to as a
_pname:pNext chain_.
If that extension is supported by the implementation, then it must: be
enabled.
Each type of valid structure must: not appear more than once in a
ptext:pNext chain.
Any component of the implementation (the loader, any enabled layers, and
drivers) must: skip over, without processing (other than reading the
pname:sType and pname:pNext members) any structures in the chain with

View File

@ -844,19 +844,6 @@ ifdef::VK_KHX_external_memory_win32,VK_KHX_external_memory_fd[]
pname:allocationSize and pname:memoryTypeIndex must: match those
specified when the memory object being imported was created.
endif::VK_KHX_external_memory_win32,VK_KHX_external_memory_fd[]
****
ifdef::editing-notes[]
[NOTE]
.editing-note
====
Split Valid Usage block into two parts to work around asciidoctor-pdf
problem (internal issue 683).
====
endif::editing-notes[]
.Valid Usage
****
ifdef::VK_KHX_external_memory+VK_KHX_device_group[]
* If the parameters define an import operation and the external handle
specified was created by the Vulkan API, the device mask specified by

View File

@ -1328,19 +1328,6 @@ record the commands for the first subpass of that render pass.
specified in the pname:framebuffer member of pname:pRenderPassBegin
must: have been created with ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
set
****
ifdef::editing-notes[]
[NOTE]
.editing-note
====
Split Valid Usage block into two parts to work around asciidoctor-pdf
problem (internal issue 683).
====
endif::editing-notes[]
.Valid Usage
****
* If any of the pname:initialLayout or pname:finalLayout member of the
sname:VkAttachmentDescription structures or the pname:layout member of
the sname:VkAttachmentReference structures specified when creating the

View File

@ -2639,20 +2639,6 @@ endif::VK_KHX_external_memory[]
pname:dstQueueFamilyIndex must: either both be
ename:VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see
<<devsandqueues-queueprops>>)
****
ifdef::editing-notes[]
[NOTE]
.editing-note
====
Split Valid Usage block into two parts to work around asciidoctor-pdf
problem (internal issue 683).
====
endif::editing-notes[]
.Valid Usage
****
* If pname:image was created with a sharing mode of
ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and
pname:dstQueueFamilyIndex are valid queue families, at least one of them

View File

@ -1,79 +0,0 @@
# Copyright (c) 2016-2017 The Khronos Group Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
module Asciidoctor
module Pdf
class Converter < ::Prawn::Document
def convert_sidebar node
add_dest_for_block node if node.id
theme_margin :block, :top
keep_together do |box_height = nil|
start_page_number = page_number
start_cursor = cursor
# FIXME? Have to draw graphics once before content to get accurate box_height.
# This is overwritten by the theme_fill_and_stroke_bounds command, so needs drawing twice
pad_box @theme.sidebar_padding do
if node.title?
theme_font :sidebar_title do
# QUESTION should we allow margins of sidebar title to be customized?
layout_heading node.title, align: (@theme.sidebar_title_align || @theme.base_align).to_sym, margin_top: 0
end
end
theme_font :sidebar do
convert_content_for_block node
end
end
if box_height
page_spread = (end_page_number = page_number) - start_page_number + 1
end_cursor = cursor
go_to_page start_page_number
move_cursor_to start_cursor
page_spread.times do |i|
if i == 0
y_draw = cursor
b_height = page_spread > 1 ? y_draw : (y_draw - end_cursor)
else
bounds.move_past_bottom
y_draw = cursor
b_height = page_spread - 1 == i ? (y_draw - end_cursor) : y_draw
end
bounding_box [0, y_draw], width: bounds.width, height: b_height do
theme_fill_and_stroke_bounds :sidebar
end
end
end
go_to_page start_page_number
move_cursor_to start_cursor
pad_box @theme.sidebar_padding do
if node.title?
theme_font :sidebar_title do
# HACK: The "margin_top: 1" makes things work, but I don't know entirely why.
# Using the blockquote_padding above instead of sidebar_padding makes the blocks render with the wrong padding.
# Using the sidebar_padding it loses the background on subsequent pages unless margin_top is 1 here.
# QUESTION should we allow margins of sidebar title to be customized?
layout_heading node.title, align: (@theme.sidebar_title_align || @theme.base_align).to_sym, margin_top: 1
end
end
theme_font :sidebar do
convert_content_for_block node
end
end
end
theme_margin :block, :bottom
end
end
end
end

View File

@ -14,6 +14,7 @@ extensions['VK_GOOGLE_display_timing'] = [ 'VK_KHR_surface', 'VK_KHR_swapchain'
extensions['VK_KHR_android_surface'] = [ 'VK_KHR_surface' ]
extensions['VK_KHR_display'] = [ 'VK_KHR_surface' ]
extensions['VK_KHR_display_swapchain'] = [ 'VK_KHR_display', 'VK_KHR_surface', 'VK_KHR_swapchain' ]
extensions['VK_KHR_incremental_present'] = [ 'VK_KHR_surface', 'VK_KHR_swapchain' ]
extensions['VK_KHR_mir_surface'] = [ 'VK_KHR_surface' ]
extensions['VK_KHR_push_descriptor'] = [ 'VK_KHR_get_physical_device_properties2' ]
extensions['VK_KHR_swapchain'] = [ 'VK_KHR_surface' ]
@ -40,6 +41,6 @@ extensions['VK_NV_external_memory_win32'] = [ 'VK_NV_external_memory', 'VK_NV_ex
extensions['VK_NV_win32_keyed_mutex'] = [ 'VK_NV_external_memory', 'VK_NV_external_memory_capabilities', 'VK_NV_external_memory_win32' ]
# Define lists of all / KHR / KHX extensions
allExts = [ 'VK_AMD_draw_indirect_count', 'VK_AMD_gcn_shader', 'VK_AMD_gpu_shader_half_float', 'VK_AMD_negative_viewport_height', 'VK_AMD_rasterization_order', 'VK_AMD_shader_ballot', 'VK_AMD_shader_explicit_vertex_parameter', 'VK_AMD_shader_trinary_minmax', 'VK_EXT_acquire_xlib_display', 'VK_EXT_debug_marker', 'VK_EXT_debug_report', 'VK_EXT_direct_mode_display', 'VK_EXT_discard_rectangles', 'VK_EXT_display_control', 'VK_EXT_display_surface_counter', 'VK_EXT_hdr_metadata', 'VK_EXT_shader_subgroup_ballot', 'VK_EXT_shader_subgroup_vote', 'VK_EXT_swapchain_colorspace', 'VK_EXT_validation_flags', 'VK_GOOGLE_display_timing', 'VK_IMG_filter_cubic', 'VK_IMG_format_pvrtc', 'VK_KHR_android_surface', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_wayland_surface', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface', 'VK_KHX_device_group', 'VK_KHX_device_group_creation', 'VK_KHX_external_memory', 'VK_KHX_external_memory_capabilities', 'VK_KHX_external_memory_fd', 'VK_KHX_external_memory_win32', 'VK_KHX_external_semaphore', 'VK_KHX_external_semaphore_capabilities', 'VK_KHX_external_semaphore_fd', 'VK_KHX_external_semaphore_win32', 'VK_KHX_multiview', 'VK_KHX_win32_keyed_mutex', 'VK_MVK_ios_surface', 'VK_MVK_macos_surface', 'VK_NN_vi_surface', 'VK_NVX_device_generated_commands', 'VK_NVX_multiview_per_view_attributes', 'VK_NV_clip_space_w_scaling', 'VK_NV_dedicated_allocation', 'VK_NV_external_memory', 'VK_NV_external_memory_capabilities', 'VK_NV_external_memory_win32', 'VK_NV_geometry_shader_passthrough', 'VK_NV_glsl_shader', 'VK_NV_sample_mask_override_coverage', 'VK_NV_viewport_array2', 'VK_NV_viewport_swizzle', 'VK_NV_win32_keyed_mutex' ]
khrExts = [ 'VK_KHR_android_surface', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_wayland_surface', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface' ]
allExts = [ 'VK_AMD_draw_indirect_count', 'VK_AMD_gcn_shader', 'VK_AMD_gpu_shader_half_float', 'VK_AMD_negative_viewport_height', 'VK_AMD_rasterization_order', 'VK_AMD_shader_ballot', 'VK_AMD_shader_explicit_vertex_parameter', 'VK_AMD_shader_trinary_minmax', 'VK_EXT_acquire_xlib_display', 'VK_EXT_debug_marker', 'VK_EXT_debug_report', 'VK_EXT_direct_mode_display', 'VK_EXT_discard_rectangles', 'VK_EXT_display_control', 'VK_EXT_display_surface_counter', 'VK_EXT_hdr_metadata', 'VK_EXT_shader_subgroup_ballot', 'VK_EXT_shader_subgroup_vote', 'VK_EXT_swapchain_colorspace', 'VK_EXT_validation_flags', 'VK_GOOGLE_display_timing', 'VK_IMG_filter_cubic', 'VK_IMG_format_pvrtc', 'VK_KHR_android_surface', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_incremental_present', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_wayland_surface', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface', 'VK_KHX_device_group', 'VK_KHX_device_group_creation', 'VK_KHX_external_memory', 'VK_KHX_external_memory_capabilities', 'VK_KHX_external_memory_fd', 'VK_KHX_external_memory_win32', 'VK_KHX_external_semaphore', 'VK_KHX_external_semaphore_capabilities', 'VK_KHX_external_semaphore_fd', 'VK_KHX_external_semaphore_win32', 'VK_KHX_multiview', 'VK_KHX_win32_keyed_mutex', 'VK_MVK_ios_surface', 'VK_MVK_macos_surface', 'VK_NN_vi_surface', 'VK_NVX_device_generated_commands', 'VK_NVX_multiview_per_view_attributes', 'VK_NV_clip_space_w_scaling', 'VK_NV_dedicated_allocation', 'VK_NV_external_memory', 'VK_NV_external_memory_capabilities', 'VK_NV_external_memory_win32', 'VK_NV_geometry_shader_passthrough', 'VK_NV_glsl_shader', 'VK_NV_sample_mask_override_coverage', 'VK_NV_viewport_array2', 'VK_NV_viewport_swizzle', 'VK_NV_win32_keyed_mutex' ]
khrExts = [ 'VK_KHR_android_surface', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_incremental_present', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_wayland_surface', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface' ]
khxExts = [ 'VK_KHX_device_group', 'VK_KHX_device_group_creation', 'VK_KHX_external_memory', 'VK_KHX_external_memory_capabilities', 'VK_KHX_external_memory_fd', 'VK_KHX_external_memory_win32', 'VK_KHX_external_semaphore', 'VK_KHX_external_semaphore_capabilities', 'VK_KHX_external_semaphore_fd', 'VK_KHX_external_semaphore_win32', 'VK_KHX_multiview', 'VK_KHX_win32_keyed_mutex' ]

View File

@ -14,6 +14,7 @@ extensions[VK_GOOGLE_display_timing]="VK_KHR_surface VK_KHR_swapchain"
extensions[VK_KHR_android_surface]="VK_KHR_surface"
extensions[VK_KHR_display]="VK_KHR_surface"
extensions[VK_KHR_display_swapchain]="VK_KHR_display VK_KHR_surface VK_KHR_swapchain"
extensions[VK_KHR_incremental_present]="VK_KHR_surface VK_KHR_swapchain"
extensions[VK_KHR_mir_surface]="VK_KHR_surface"
extensions[VK_KHR_push_descriptor]="VK_KHR_get_physical_device_properties2"
extensions[VK_KHR_swapchain]="VK_KHR_surface"
@ -40,6 +41,6 @@ extensions[VK_NV_external_memory_win32]="VK_NV_external_memory VK_NV_external_me
extensions[VK_NV_win32_keyed_mutex]="VK_NV_external_memory VK_NV_external_memory_capabilities VK_NV_external_memory_win32"
# Define lists of all / KHR / KHX extensions
allExts="VK_AMD_draw_indirect_count VK_AMD_gcn_shader VK_AMD_gpu_shader_half_float VK_AMD_negative_viewport_height VK_AMD_rasterization_order VK_AMD_shader_ballot VK_AMD_shader_explicit_vertex_parameter VK_AMD_shader_trinary_minmax VK_EXT_acquire_xlib_display VK_EXT_debug_marker VK_EXT_debug_report VK_EXT_direct_mode_display VK_EXT_discard_rectangles VK_EXT_display_control VK_EXT_display_surface_counter VK_EXT_hdr_metadata VK_EXT_shader_subgroup_ballot VK_EXT_shader_subgroup_vote VK_EXT_swapchain_colorspace VK_EXT_validation_flags VK_GOOGLE_display_timing VK_IMG_filter_cubic VK_IMG_format_pvrtc VK_KHR_android_surface VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_get_physical_device_properties2 VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_surface VK_KHR_swapchain VK_KHR_wayland_surface VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface VK_KHX_device_group VK_KHX_device_group_creation VK_KHX_external_memory VK_KHX_external_memory_capabilities VK_KHX_external_memory_fd VK_KHX_external_memory_win32 VK_KHX_external_semaphore VK_KHX_external_semaphore_capabilities VK_KHX_external_semaphore_fd VK_KHX_external_semaphore_win32 VK_KHX_multiview VK_KHX_win32_keyed_mutex VK_MVK_ios_surface VK_MVK_macos_surface VK_NN_vi_surface VK_NVX_device_generated_commands VK_NVX_multiview_per_view_attributes VK_NV_clip_space_w_scaling VK_NV_dedicated_allocation VK_NV_external_memory VK_NV_external_memory_capabilities VK_NV_external_memory_win32 VK_NV_geometry_shader_passthrough VK_NV_glsl_shader VK_NV_sample_mask_override_coverage VK_NV_viewport_array2 VK_NV_viewport_swizzle VK_NV_win32_keyed_mutex"
khrExts="VK_KHR_android_surface VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_get_physical_device_properties2 VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_surface VK_KHR_swapchain VK_KHR_wayland_surface VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface"
allExts="VK_AMD_draw_indirect_count VK_AMD_gcn_shader VK_AMD_gpu_shader_half_float VK_AMD_negative_viewport_height VK_AMD_rasterization_order VK_AMD_shader_ballot VK_AMD_shader_explicit_vertex_parameter VK_AMD_shader_trinary_minmax VK_EXT_acquire_xlib_display VK_EXT_debug_marker VK_EXT_debug_report VK_EXT_direct_mode_display VK_EXT_discard_rectangles VK_EXT_display_control VK_EXT_display_surface_counter VK_EXT_hdr_metadata VK_EXT_shader_subgroup_ballot VK_EXT_shader_subgroup_vote VK_EXT_swapchain_colorspace VK_EXT_validation_flags VK_GOOGLE_display_timing VK_IMG_filter_cubic VK_IMG_format_pvrtc VK_KHR_android_surface VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_get_physical_device_properties2 VK_KHR_incremental_present VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_surface VK_KHR_swapchain VK_KHR_wayland_surface VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface VK_KHX_device_group VK_KHX_device_group_creation VK_KHX_external_memory VK_KHX_external_memory_capabilities VK_KHX_external_memory_fd VK_KHX_external_memory_win32 VK_KHX_external_semaphore VK_KHX_external_semaphore_capabilities VK_KHX_external_semaphore_fd VK_KHX_external_semaphore_win32 VK_KHX_multiview VK_KHX_win32_keyed_mutex VK_MVK_ios_surface VK_MVK_macos_surface VK_NN_vi_surface VK_NVX_device_generated_commands VK_NVX_multiview_per_view_attributes VK_NV_clip_space_w_scaling VK_NV_dedicated_allocation VK_NV_external_memory VK_NV_external_memory_capabilities VK_NV_external_memory_win32 VK_NV_geometry_shader_passthrough VK_NV_glsl_shader VK_NV_sample_mask_override_coverage VK_NV_viewport_array2 VK_NV_viewport_swizzle VK_NV_win32_keyed_mutex"
khrExts="VK_KHR_android_surface VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_get_physical_device_properties2 VK_KHR_incremental_present VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_surface VK_KHR_swapchain VK_KHR_wayland_surface VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface"
khxExts="VK_KHX_device_group VK_KHX_device_group_creation VK_KHX_external_memory VK_KHX_external_memory_capabilities VK_KHX_external_memory_fd VK_KHX_external_memory_win32 VK_KHX_external_semaphore VK_KHX_external_semaphore_capabilities VK_KHX_external_semaphore_fd VK_KHX_external_semaphore_win32 VK_KHX_multiview VK_KHX_win32_keyed_mutex"

View File

@ -1036,7 +1036,7 @@ void vkGetPhysicalDeviceExternalBufferPropertiesKHX(
#endif /* VK_KHX_external_memory_capabilities */
#ifdef VK_KHX_external_memory_win32
#ifdef VK_USE_PLATFORM_WIN32_KHR
#ifdef VK_USE_PLATFORM_WIN32_KHX
static PFN_vkGetMemoryWin32HandleKHX pfn_vkGetMemoryWin32HandleKHX;
VkResult vkGetMemoryWin32HandleKHX(
VkDevice device,
@ -1067,7 +1067,7 @@ VkResult vkGetMemoryWin32HandlePropertiesKHX(
);
}
#endif /* VK_USE_PLATFORM_WIN32_KHR */
#endif /* VK_USE_PLATFORM_WIN32_KHX */
#endif /* VK_KHX_external_memory_win32 */
#ifdef VK_KHX_external_memory_fd
static PFN_vkGetMemoryFdKHX pfn_vkGetMemoryFdKHX;
@ -1677,7 +1677,7 @@ void vkExtInitInstance(VkInstance instance)
#ifndef VK_KHX_external_memory_win32
pfn_vkGetMemoryWin32HandleKHX = (PFN_vkGetMemoryWin32HandleKHX)vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandleKHX");
pfn_vkGetMemoryWin32HandlePropertiesKHX = (PFN_vkGetMemoryWin32HandlePropertiesKHX)vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandlePropertiesKHX");
#endif /* VK_USE_PLATFORM_WIN32_KHR */
#endif /* VK_USE_PLATFORM_WIN32_KHX */
#endif /* VK_KHX_external_memory_win32 */
#ifdef VK_KHX_external_memory_fd
pfn_vkGetMemoryFdKHX = (PFN_vkGetMemoryFdKHX)vkGetInstanceProcAddr(instance, "vkGetMemoryFdKHX");
@ -1884,7 +1884,7 @@ void vkExtInitDevice(VkDevice device)
#ifndef VK_KHX_external_memory_win32
pfn_vkGetMemoryWin32HandleKHX = (PFN_vkGetMemoryWin32HandleKHX)vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandleKHX");
pfn_vkGetMemoryWin32HandlePropertiesKHX = (PFN_vkGetMemoryWin32HandlePropertiesKHX)vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandlePropertiesKHX");
#endif /* VK_USE_PLATFORM_WIN32_KHR */
#endif /* VK_USE_PLATFORM_WIN32_KHX */
#endif /* VK_KHX_external_memory_win32 */
#ifdef VK_KHX_external_memory_fd
pfn_vkGetMemoryFdKHX = (PFN_vkGetMemoryFdKHX)vkGetDeviceProcAddr(device, "vkGetMemoryFdKHX");

View File

@ -669,7 +669,7 @@ class ValidityOutputGenerator(OutputGenerator):
validextensionstructs = param.attrib.get('validextensionstructs')
extensionstructs = []
if validextensionstructs is not None:
# Check each structure name and skip it if not required by the
# generator. This allows tagging extension structs in the XML
@ -684,7 +684,7 @@ class ValidityOutputGenerator(OutputGenerator):
extensionstructs.append('slink:' + struct)
else:
self.logMsg('diag', 'makeStructureExtensionPointer: struct', struct, 'IS NOT required')
if len(extensionstructs) == 0:
asciidoc += self.makeParameterName(paramname.text)
asciidoc += ' must: be `NULL`'
@ -692,15 +692,18 @@ class ValidityOutputGenerator(OutputGenerator):
asciidoc += self.makeParameterName(paramname.text)
asciidoc += ' must: be `NULL` or a pointer to a valid instance of '
asciidoc += extensionstructs[0]
else:
else:
asciidoc += 'Each '
asciidoc += self.makeParameterName(paramname.text)
asciidoc += ' member of any structure (including this one) in the pname:pNext chain must: be either `NULL` or a pointer to a valid instance of '
if len(extensionstructs) == 2:
asciidoc += extensionstructs[0] + ' or ' + extensionstructs[1]
else:
asciidoc += (', ').join(extensionstructs[:-1]) + ', or ' + extensionstructs[-1]
asciidoc += '\n'
asciidoc += '* Each pname:sType member in the pname:pNext chain must: be unique'
asciidoc += '\n'
@ -722,7 +725,7 @@ class ValidityOutputGenerator(OutputGenerator):
# Get the type's category
typecategory = self.getTypeCategory(paramtype.text)
if param.attrib.get('noautovalidity') is None:
# Generate language to independently validate a parameter
if paramtype.text == 'VkStructureType' and paramname.text == 'sType':

View File

@ -112,7 +112,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<type category="define">// Vulkan 1.0 version number
#define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)</type> <!-- The patch version here should never be set to anything other than 0 -->
<type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 45</type>
#define <name>VK_HEADER_VERSION</name> 46</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -1564,7 +1564,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
</type>
<type category="struct" name="VkPresentInfoKHR">
<member values="VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkDisplayPresentInfoKHR,VkDeviceGroupPresentInfoKHX,VkPresentTimesInfoGOOGLE">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member validextensionstructs="VkDisplayPresentInfoKHR,VkPresentRegionsKHR,VkDeviceGroupPresentInfoKHX,VkPresentTimesInfoGOOGLE">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member> <!-- Number of semaphores to wait for before presenting -->
<member optional="true" len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member> <!-- Semaphores to wait for before presenting -->
<member><type>uint32_t</type> <name>swapchainCount</name></member> <!-- Number of swapchains to present in this call -->
@ -1580,7 +1580,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<member optional="true"><type>void</type>* <name>pUserData</name></member> <!-- User data provided to callback function -->
</type>
<type category="struct" name="VkValidationFlagsEXT">
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT -->
<member values="VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT -->
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member><type>uint32_t</type> <name>disabledValidationCheckCount</name></member> <!-- Number of validation checks to disable -->
<member len="disabledValidationCheckCount"><type>VkValidationCheckEXT</type>* <name>pDisabledValidationChecks</name></member> <!-- Validation checks to disable -->
@ -1768,7 +1768,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<member><type>VkShaderStageFlags</type> <name>stageFlags</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceFeatures2KHR">
<member><type>VkStructureType</type> <name>sType</name></member>
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPhysicalDeviceMultiviewFeaturesKHX"><type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member><type>VkPhysicalDeviceFeatures</type> <name>features</name></member>
</type>
@ -1825,6 +1825,21 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<member><type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member><type>uint32_t</type> <name>maxPushDescriptors</name></member>
</type>
<type category="struct" name="VkPresentRegionsKHR">
<member values="VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member validextensionstructs="VkPresentRegionsKHR,VkDeviceGroupPresentInfoKHX,VkPresentTimesInfoGOOGLE">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member><type>uint32_t</type> <name>swapchainCount</name></member> <!-- Copy of VkPresentInfoKHR::swapchainCount -->
<member len="swapchainCount" optional="true">const <type>VkPresentRegionKHR</type>* <name>pRegions</name></member> <!-- The regions that have changed -->
</type>
<type category="struct" name="VkPresentRegionKHR">
<member optional="true"><type>uint32_t</type> <name>rectangleCount</name></member> <!-- Number of rectangles in pRectangles -->
<member optional="true" len="rectangleCount">const <type>VkRectLayerKHR</type>* <name>pRectangles</name></member> <!-- Array of rectangles that have changed in a swapchain's image(s) -->
</type>
<type category="struct" name="VkRectLayerKHR">
<member><type>VkOffset2D</type> <name>offset</name></member> <!-- upper-left corner of a rectangle that has not changed, in pixels of a presentation images -->
<member><type>VkExtent2D</type> <name>extent</name></member> <!-- Dimensions of a rectangle that has not changed, in pixels of a presentation images -->
<member><type>uint32_t</type> <name>layer</name></member> <!-- Layer of a swapchain's image(s), for stereoscopic-3D images -->
</type>
<type category="struct" name="VkExternalMemoryPropertiesKHX" returnedonly="true">
<member><type>VkExternalMemoryFeatureFlagsKHX</type> <name>externalMemoryFeatures</name></member>
<member optional="true"><type>VkExternalMemoryHandleTypeFlagsKHX</type> <name>exportFromImportedHandleTypes</name></member>
@ -2222,7 +2237,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
</type>
<type category="struct" name="VkPhysicalDeviceDiscardRectanglePropertiesEXT">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member><type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member><type>uint32_t</type> <name>maxDiscardRectangles</name></member> <!-- max number of active discard rectangles -->
</type>
<type category="struct" name="VkPipelineDiscardRectangleStateCreateInfoEXT">
@ -4520,10 +4535,10 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<param len="descriptorWriteCount">const <type>VkWriteDescriptorSet</type>* <name>pDescriptorWrites</name></param>
</command>
<command>
<proto><type>void</type> <name>vkTrimCommandPoolKHR</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param externsync="true"><type>VkCommandPool</type> <name>commandPool</name></param>
<param optional="true"><type>VkCommandPoolTrimFlagsKHR</type> <name>flags</name></param>
<proto><type>void</type> <name>vkTrimCommandPoolKHR</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param externsync="true"><type>VkCommandPool</type> <name>commandPool</name></param>
<param optional="true"><type>VkCommandPoolTrimFlagsKHR</type> <name>flags</name></param>
</command>
<command>
<proto><type>void</type> <name>vkGetPhysicalDeviceExternalBufferPropertiesKHX</name></proto>
@ -4769,11 +4784,11 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
</command>
<command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
<proto><type>void</type> <name>vkCmdSetViewportWScalingNV</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param><type>uint32_t</type> <name>firstViewport</name></param>
<param><type>uint32_t</type> <name>viewportCount</name></param>
<param len="viewportCount" noautovalidity="true">const <type>VkViewportWScalingNV</type>* <name>pViewportWScalings</name></param>
<proto><type>void</type> <name>vkCmdSetViewportWScalingNV</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param><type>uint32_t</type> <name>firstViewport</name></param>
<param><type>uint32_t</type> <name>viewportCount</name></param>
<param len="viewportCount" noautovalidity="true">const <type>VkViewportWScalingNV</type>* <name>pViewportWScalings</name></param>
</command>
<command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
<proto><type>void</type> <name>vkCmdSetDiscardRectangleEXT</name></proto>
@ -5154,7 +5169,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
</extension>
<extension name="VK_EXT_debug_report" number="12" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney" supported="vulkan">
<require>
<enum value="5" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/>
<enum value="6" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_debug_report&quot;" name="VK_EXT_DEBUG_REPORT_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"/>
<enum offset="1" dir="-" extends="VkResult" name="VK_ERROR_VALIDATION_FAILED_EXT"/>
@ -5709,7 +5724,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<type name="VkExportMemoryAllocateInfoKHX"/>
</require>
</extension>
<extension name="VK_KHX_external_memory_win32" number="74" type="device" requires="VK_KHX_external_memory_capabilities,VK_KHX_external_memory" author="KHX" contact="James Jones @cubanismo" protect="VK_USE_PLATFORM_WIN32_KHR" supported="vulkan">
<extension name="VK_KHX_external_memory_win32" number="74" type="device" requires="VK_KHX_external_memory_capabilities,VK_KHX_external_memory" author="KHX" contact="James Jones @cubanismo" protect="VK_USE_PLATFORM_WIN32_KHX" supported="vulkan">
<require>
<enum value="1" name="VK_KHX_EXTERNAL_MEMORY_WIN32_SPEC_VERSION"/>
<enum value="&quot;VK_KHX_external_memory_win32&quot;" name="VK_KHX_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME"/>
@ -5820,10 +5835,14 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<enum value="&quot;VK_KHR_extension_84&quot;" name="VK_KHR_EXTENSION_84_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_KHR_extension_85" number="85" author="KHR" contact="Ian Elliott @ianelliott" supported="disabled">
<extension name="VK_KHR_incremental_present" number="85" type="device" author="KHR" requires="VK_KHR_swapchain" contact="Ian Elliott ianelliott@google.com" supported="vulkan">
<require>
<enum value="0" name="VK_KHR_EXTENSION_85_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_extension_85&quot;" name="VK_KHR_EXTENSION_85_EXTENSION_NAME"/>
<enum value="1" name="VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_incremental_present&quot;" name="VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"/>
<type name="VkPresentRegionsKHR"/>
<type name="VkPresentRegionKHR"/>
<type name="VkRectLayerKHR"/>
</require>
</extension>
<extension name="VK_KHR_descriptor_update_template" number="86" type="device" author="KHR" contact="Markus Tavenrath @mtavenrath" supported="vulkan">
@ -5831,10 +5850,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<enum value="1" name="VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_descriptor_update_template&quot;" name="VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR"/>
<enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT"/>
<command name="vkCreateDescriptorUpdateTemplateKHR"/>
<command name="vkDestroyDescriptorUpdateTemplateKHR"/>
<command name="vkUpdateDescriptorSetWithTemplateKHR"/>
<command name="vkCmdPushDescriptorSetWithTemplateKHR"/>
<type name="VkDescriptorUpdateTemplateKHR"/>
<type name="VkDescriptorUpdateTemplateCreateFlagsKHR"/>
<type name="VkDescriptorUpdateTemplateTypeKHR"/>
<type name="VkDescriptorUpdateTemplateEntryKHR"/>
@ -5885,7 +5906,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<command name="vkRegisterObjectsNVX"/>
<command name="vkUnregisterObjectsNVX"/>
<command name="vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"/>
</require>
</require>
</extension>
<extension name="VK_NV_clip_space_w_scaling" number="88" type="device" author="NV" contact="Eric Werness @ewerness" supported="vulkan">
<require>
@ -6234,5 +6255,95 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<enum value="&quot;VK_KHR_extension_132&quot;" name="VK_KHR_EXTENSION_132_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_133" number="133" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_133_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_133&quot;" name="VK_AMD_EXTENSION_133_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_134" number="134" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_134_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_134&quot;" name="VK_AMD_EXTENSION_134_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_135" number="135" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_135_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_135&quot;" name="VK_AMD_EXTENSION_135_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_136" number="136" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_136_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_136&quot;" name="VK_AMD_EXTENSION_136_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_137" number="137" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_137_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_137&quot;" name="VK_AMD_EXTENSION_137_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_138" number="138" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_138_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_138&quot;" name="VK_AMD_EXTENSION_138_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_139" number="139" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_139_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_139&quot;" name="VK_AMD_EXTENSION_139_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_140" number="140" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_140_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_140&quot;" name="VK_AMD_EXTENSION_140_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_141" number="141" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_141_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_141&quot;" name="VK_AMD_EXTENSION_141_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_142" number="142" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_142_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_142&quot;" name="VK_AMD_EXTENSION_142_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_143" number="143" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_143_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_143&quot;" name="VK_AMD_EXTENSION_143_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_144" number="144" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<require>
<enum value="0" name="VK_AMD_EXTENSION_144_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_144&quot;" name="VK_AMD_EXTENSION_144_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_KHR_relaxed_block_layout" number="145" author="KHR" contact="John Kessenich @johnk" supported="disabled">
<require>
<enum value="0" name="VK_KHR_relaxed_block_layout_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_relaxed_block_layout&quot;" name="VK_KHR_relaxed_block_layout_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_KHR_extension_146" number="146" author="KHR" contact="Bill Licea-Kane @billl" supported="disabled">
<require>
<enum value="0" name="VK_KHR_extension_146_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_extension_146&quot;" name="VK_KHR_extension_146_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_KHR_extension_147" number="147" author="KHR" contact="Jason Ekstrand @jekstrand" supported="disabled">
<require>
<enum value="0" name="VK_KHR_extension_147_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_extension_147&quot;" name="VK_KHR_extension_147_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
</registry>

View File

@ -43,7 +43,7 @@ extern "C" {
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file
#define VK_HEADER_VERSION 45
#define VK_HEADER_VERSION 46
#define VK_NULL_HANDLE 0
@ -281,6 +281,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHX = 1000078002,
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHX = 1000079000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
@ -4004,6 +4005,30 @@ VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
const VkWriteDescriptorSet* pDescriptorWrites);
#endif
#define VK_KHR_incremental_present 1
#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
typedef struct VkRectLayerKHR {
VkOffset2D offset;
VkExtent2D extent;
uint32_t layer;
} VkRectLayerKHR;
typedef struct VkPresentRegionKHR {
uint32_t rectangleCount;
const VkRectLayerKHR* pRectangles;
} VkPresentRegionKHR;
typedef struct VkPresentRegionsKHR {
VkStructureType sType;
const void* pNext;
uint32_t swapchainCount;
const VkPresentRegionKHR* pRegions;
} VkPresentRegionsKHR;
#define VK_KHR_descriptor_update_template 1
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR)
@ -4079,7 +4104,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
#define VK_EXT_debug_report 1
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 5
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 6
#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
@ -4118,6 +4143,7 @@ typedef enum VkDebugReportObjectTypeEXT {
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
@ -4899,7 +4925,7 @@ typedef struct VkExportMemoryAllocateInfoKHX {
#ifdef VK_USE_PLATFORM_WIN32_KHR
#ifdef VK_USE_PLATFORM_WIN32_KHX
#define VK_KHX_external_memory_win32 1
#define VK_KHX_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
#define VK_KHX_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHX_external_memory_win32"
@ -4942,7 +4968,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHX(
HANDLE handle,
VkMemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties);
#endif
#endif /* VK_USE_PLATFORM_WIN32_KHR */
#endif /* VK_USE_PLATFORM_WIN32_KHX */
#define VK_KHX_external_memory_fd 1
#define VK_KHX_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
@ -5676,7 +5702,7 @@ typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
VkStructureType sType;
const void* pNext;
void* pNext;
uint32_t maxDiscardRectangles;
} VkPhysicalDeviceDiscardRectanglePropertiesEXT;