Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
#ifndef VULKAN_H_
|
|
|
|
#define VULKAN_H_ 1
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
** Copyright (c) 2015-2017 The Khronos Group Inc.
|
2016-02-16 09:53:44 +00:00
|
|
|
**
|
2016-04-21 08:08:38 +00:00
|
|
|
** 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
|
2016-02-16 09:53:44 +00:00
|
|
|
**
|
2016-04-21 08:08:38 +00:00
|
|
|
** http://www.apache.org/licenses/LICENSE-2.0
|
2016-02-16 09:53:44 +00:00
|
|
|
**
|
2016-04-21 08:08:38 +00:00
|
|
|
** 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.
|
2016-02-16 09:53:44 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
|
|
|
**
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_VERSION_1_0 1
|
|
|
|
#include "vk_platform.h"
|
|
|
|
|
|
|
|
#define VK_MAKE_VERSION(major, minor, patch) \
|
|
|
|
(((major) << 22) | ((minor) << 12) | (patch))
|
|
|
|
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
|
|
|
|
// Vulkan 1.0 version number
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
|
|
|
|
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
|
|
|
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
// Version of this file
|
2017-11-27 09:07:06 +00:00
|
|
|
#define VK_HEADER_VERSION 66
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
#define VK_NULL_HANDLE 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
|
|
|
|
|
|
|
|
|
2016-08-28 10:47:19 +00:00
|
|
|
#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
|
2016-02-16 09:53:44 +00:00
|
|
|
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
|
|
|
|
#else
|
|
|
|
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
|
|
|
|
#endif
|
2016-08-28 10:47:19 +00:00
|
|
|
#endif
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef uint32_t VkFlags;
|
|
|
|
typedef uint32_t VkBool32;
|
|
|
|
typedef uint64_t VkDeviceSize;
|
|
|
|
typedef uint32_t VkSampleMask;
|
|
|
|
|
|
|
|
VK_DEFINE_HANDLE(VkInstance)
|
|
|
|
VK_DEFINE_HANDLE(VkPhysicalDevice)
|
|
|
|
VK_DEFINE_HANDLE(VkDevice)
|
|
|
|
VK_DEFINE_HANDLE(VkQueue)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
|
|
|
|
VK_DEFINE_HANDLE(VkCommandBuffer)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
|
|
|
|
|
|
|
|
#define VK_LOD_CLAMP_NONE 1000.0f
|
|
|
|
#define VK_REMAINING_MIP_LEVELS (~0U)
|
|
|
|
#define VK_REMAINING_ARRAY_LAYERS (~0U)
|
|
|
|
#define VK_WHOLE_SIZE (~0ULL)
|
|
|
|
#define VK_ATTACHMENT_UNUSED (~0U)
|
|
|
|
#define VK_TRUE 1
|
|
|
|
#define VK_FALSE 0
|
|
|
|
#define VK_QUEUE_FAMILY_IGNORED (~0U)
|
|
|
|
#define VK_SUBPASS_EXTERNAL (~0U)
|
|
|
|
#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
|
|
|
|
#define VK_UUID_SIZE 16
|
|
|
|
#define VK_MAX_MEMORY_TYPES 32
|
|
|
|
#define VK_MAX_MEMORY_HEAPS 16
|
|
|
|
#define VK_MAX_EXTENSION_NAME_SIZE 256
|
|
|
|
#define VK_MAX_DESCRIPTION_SIZE 256
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkPipelineCacheHeaderVersion {
|
|
|
|
VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
|
|
|
|
VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
|
|
|
|
VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
|
|
|
|
VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
|
|
|
|
VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkPipelineCacheHeaderVersion;
|
|
|
|
|
|
|
|
typedef enum VkResult {
|
|
|
|
VK_SUCCESS = 0,
|
|
|
|
VK_NOT_READY = 1,
|
|
|
|
VK_TIMEOUT = 2,
|
|
|
|
VK_EVENT_SET = 3,
|
|
|
|
VK_EVENT_RESET = 4,
|
|
|
|
VK_INCOMPLETE = 5,
|
|
|
|
VK_ERROR_OUT_OF_HOST_MEMORY = -1,
|
|
|
|
VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
|
|
|
|
VK_ERROR_INITIALIZATION_FAILED = -3,
|
|
|
|
VK_ERROR_DEVICE_LOST = -4,
|
|
|
|
VK_ERROR_MEMORY_MAP_FAILED = -5,
|
|
|
|
VK_ERROR_LAYER_NOT_PRESENT = -6,
|
|
|
|
VK_ERROR_EXTENSION_NOT_PRESENT = -7,
|
|
|
|
VK_ERROR_FEATURE_NOT_PRESENT = -8,
|
|
|
|
VK_ERROR_INCOMPATIBLE_DRIVER = -9,
|
|
|
|
VK_ERROR_TOO_MANY_OBJECTS = -10,
|
|
|
|
VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
VK_ERROR_FRAGMENTED_POOL = -12,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_ERROR_SURFACE_LOST_KHR = -1000000000,
|
|
|
|
VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
|
|
|
|
VK_SUBOPTIMAL_KHR = 1000001003,
|
|
|
|
VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
|
|
|
|
VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
|
|
|
|
VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
|
Change log for March 4, 2016 Vulkan 1.0.5 spec update:
* Bump API patch number to 5 for this update.
Github Issues:
* Correctly describe slink:VkPhysicalDeviceProperties pname:deviceName
member as a string, not a pointer to a string. Also one typo fix for
"hetereogeneous" (public issue 4).
* Replace maynot: macro with may: not, and "may: or maynot:" with
"may:" (public issue 4).
* Clarify that redundantly setting the state of a fence or event has
no effect (public issue 4).
* Minor fixes to ref pages to track descriptions of memory bits that
changed in the core spec. Fix name of a member in the description of
sname:sname:VkPipelineMultisampleStateCreateInfo (public issues 8,
13).
* Remove redundant validity statement for
sname:VkGraphicsPipelineCreateInfo::pname:stageCount (public issue
14).
* Fix typos in chapters 7-9 (public issue 14).
* Clarify the example demonstrating the behavior of
code:OpMemoryBarrier in the
<<shaders-execution-memory-ordering,shader memory acces
ordering>> section (public issue 16).
* Specify that freeing mapped memory implicitly unmaps the memory in
the description of flink:vkFreeMemory (public issue 17).
* Forbid allocation callbacks from calling into the API in the
<<memory-allocation,memory allocation>> section (public issue
20).
* Add missing validity rules about size being greater than 0 and
offset being less than size of object. Fix
flink:VkMappedMemoryRange's misinterpretation of offset (public
issues 27, 31).
* Add validity rule disallowing overlapping source/destination
descriptors in flink:VkCopyDescriptorSet (public issue 32).
* Clarify that array and matrix stride has to be a multiple of the
base alignment of the array or matrix in the
<<interfaces-resources-layout,Offset and Stride Assignment>>
section (public issue 38).
* Correct parenthesis floor nesting error in equation for
<<textures-RGB-sexp,RGB to shared exponent conversion>>.
Clarify case of when exp' is forced to 0, avoiding log2(0) undefined
problem (public issue 40).
* Remove redundant statement from the code:FragDepth description in
the <<interfaces-builtin-variables,Built-In Variables>>
section (public issue 47).
* Define the clamping of the
<<textures-level-of-detail-operation,bias added to the scale
factor>> by linking to the slink:VkPhysicalDevice feature
pname:maxSamplerLodBias (public issue 64).
* Fix typo "optimal linear resources" and clarify the set of resources
<<features-limits-bufferImageGranularity,the
pname:bufferImageGranularity resource>> applies to (public issue
67).
* Replace 'descriptor accessed by a pipeline' language for
sname:VkDescriptorSetAllocateInfo with more precise phrasing about
binding a descriptor set before a command that invokes work using
that set (public issue 69).
* tstripadj.svg contained an Inkscape tag which caused Firefox and IE
11 to fail to render it, and was illegal SVG. Generating Plain SVG
from the Inkscape SVG source fixes this (public issue 70).
* Fix validity for sname:VkVertexInputBindingDescription and
sname:VkVertexInputAttributeDescription numbers (public issue 72).
Internal Issues:
* Clarify the meaning of
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in
elink:VkFormatFeatureFlagBits with respect to depth compare
(internal issue 107).
* Added a note explaining that ename:VK_QUEUE_TRANSFER_BIT may or may
not be reported for a queue family that already supports
ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT as the
former is a strict subset of the latter ones (internal issue 116).
* Add validity language for sname:VkDescriptorSetAllocateInfo about
exceeding the descriptor pool capacity (internal issue 140).
* Add ename:VK_INCOMPLETE success code for
flink:vkEnumeratePhysicalDevices query (internal issue 163).
Other Commits:
* Add the VK_NV_glsl_shader extension definitions to the API.
* Update GL_KHR_vulkan_glsl with 1) origin_upper_left as default 2)
specialization array constant semantics.
* Corrected/updated Data Format Specification date.
2016-03-03 13:06:18 +00:00
|
|
|
VK_ERROR_INVALID_SHADER_NV = -1000012000,
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000,
|
2017-07-12 00:57:41 +00:00
|
|
|
VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003,
|
Change log for October 13, 2017 Vulkan 1.0.63 spec update:
* Bump API patch number and header version number to 63 for this update.
Github Issues:
* Add missing valid usage statements for ptext:maxDescriptorSets*,
ptext:maxPerStageDescriptorInputAttachments, and
ptext:maxPerStageResources to slink:VkPipelineLayoutCreateInfo.txt,
flink:VkComputePipelineCreateInfo, and
flink:VkGraphicsPipelineCreateInfo (public issue 546).
* Fix typos in ftext:vkCmdDraw*AMD descriptions (public pull request 549).
* Fixed flink:vkCmdWriteTimestamp so it is not unnecessarily restricted to
queues supporting graphics or compute operations (public issue 558).
* Improvements to valid usage generator for output `*Flags` pointer
parameters and for some `void *` parameters (public pull requests 560,
562).
* Document `altlen` attribute in XML schema as valid C99 syntax and tweak
`vk.xml` to match (public pull request 566).
* Clarify when pname:fence is signaled by flink:vkQueueSubmit in a more
obvious place (public issue 577).
Internal Issues:
* Specify a whitelist of supported SPIR-V Storage Classes in the
<<spirvenv-module-validation, Validation Rules within a Module>>
appendix (internal SPIR-V issue 166).
* Relax the shared semaphore wait timeout requirement in the
<<synchronization-semaphores-importing, Importing Semaphore Payloads>>
section (internal issue 820).
* Update the <<textures-image-level-selection, Image Level(s) Selection>>
equations so that the parameters returned by the level-of-detail query
appear explicitly, also fixing the issue that linear filtering would
select a level below the base level for magnification (internal issue
926).
* Disallow creation of a swapchain with zero pname:imageExtent in
slink:VkSurfaceCapabilitiesKHR and slink:VkSwapchainCreateInfoKHR
(internal issue 1020).
Other Issues:
* Clarify in <<textures-operation-validation,Image View Validation>> that
the layout of subresources in an image view must have a layout that
matches that written into the descriptor, and that this section is about
validating image views, not images.
New Extensions:
* `VK_EXT_global_priority`
2017-10-13 02:57:47 +00:00
|
|
|
VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_RESULT_END_RANGE = VK_INCOMPLETE,
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_RESULT_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkResult;
|
|
|
|
|
|
|
|
typedef enum VkStructureType {
|
|
|
|
VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
|
|
|
|
VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
|
|
|
|
VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
|
|
|
|
VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
|
|
|
|
VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
|
|
|
|
VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
|
|
|
|
VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
|
|
|
|
VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
|
|
|
|
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
|
|
|
|
VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
|
|
|
|
VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
|
|
|
|
VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
|
|
|
|
VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
|
|
|
|
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
|
|
|
|
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
|
|
|
|
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
|
|
|
|
VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
|
|
|
|
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
|
|
|
|
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
|
|
|
|
VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
|
|
|
|
VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
|
|
|
|
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
|
|
|
|
VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
|
|
|
|
VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
|
|
|
|
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
|
|
|
|
VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
|
|
|
|
VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
|
|
|
|
VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
|
|
|
|
VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
|
|
|
|
VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
|
|
|
|
VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
|
|
|
|
VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
|
|
|
|
VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
|
|
|
|
VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
|
|
|
|
VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
|
|
|
|
VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
|
|
|
|
VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
|
|
|
|
VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
|
|
|
|
VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
|
|
|
|
VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
|
|
|
|
VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
|
2016-05-07 00:06:56 +00:00
|
|
|
VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
|
|
|
|
VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
|
|
|
|
VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
|
2016-07-11 01:13:41 +00:00
|
|
|
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
|
|
|
|
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
|
|
|
|
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
|
Change log for May 20, 2017 Vulkan 1.0.50 spec update:
* Bump API patch number and header version number to 50 for this update.
Github Issues:
* Fix numerous minor issues with the VK_EXT_debug_report extension (public
issues 478, 483, 486, 489, 490).
Internal Issues:
* Update flink:vkAllocateDescriptorSets to specify conditions under which
to return ename:VK_ERROR_FRAGMENTED_POOL or
ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
out-of-host/out-of-device-memory, and improve the
<<fundamentals-errorcodes, description of those errors (internal issue
654).
* Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
a single semaphore, and how to deal with that when multiple physical
devices in a logical device need to wait on it (internal issue 730).
* Improve description of pname:pNext chains of
slink:VkPhysicalDeviceImageFormatInfo2KHR and
slink:VkImageFormatProperties2KHR (internal issue 814).
* Clean up math markup issues in the <<textures, Image Operations>>
chapter (internal issue 818).
* Update validusage target to use more robust code for preprocessing, by
making direct use of Asciidoctor's preprocessor. Added uniqueItems check
to JSON vu schema and add clean_validusage target (internal issue 826).
* Update style guide to prohibit writing non-self-contained (on a single
bullet point) Valid Usage statements, and modify offending Valid Usage
statements in the Specification to match, to assist with automatic
extraction for the validation layers (internal issue 828).
* Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
of the `VK_EXT_validation_flags` extension, to selectively disable
shader validation.
* Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
* Modify reflow.py script to place VUID tag anchors standalone on a line
following their corresponding bullet point, and reflow the spec text
accordingly (this had been pending since the initial tag deployment).
New Extensions:
* `VK_AMD_texture_gather_bias_lod`
2017-05-21 00:00:50 +00:00
|
|
|
VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX = 1000053000,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX = 1000053001,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX = 1000053002,
|
2016-08-28 10:47:19 +00:00
|
|
|
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
|
|
|
|
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
|
|
|
|
VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
|
|
|
|
VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
|
|
|
|
VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
|
|
|
|
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
|
|
|
|
VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
|
|
|
|
VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX = 1000060000,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX = 1000060003,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX = 1000060004,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX = 1000060005,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX = 1000060006,
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060013,
|
|
|
|
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060014,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX = 1000060007,
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX = 1000060008,
|
|
|
|
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX = 1000060009,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX = 1000060011,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX = 1000060012,
|
2016-09-17 04:22:17 +00:00
|
|
|
VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX = 1000070000,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX = 1000070001,
|
2017-07-12 00:57:41 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
|
|
|
|
VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
|
|
|
|
VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
|
|
|
|
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
|
|
|
|
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
|
|
|
|
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
|
|
|
|
VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
|
|
|
|
VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
|
|
|
|
VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
|
|
|
|
VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
|
|
|
|
VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
|
|
|
|
VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
|
|
|
|
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
|
|
|
|
VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
|
|
|
|
VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
|
|
|
|
VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
|
|
|
|
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
|
|
|
|
VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
|
2017-07-12 00:57:41 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
|
2017-03-31 23:06:31 +00:00
|
|
|
VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
|
Change log for November 25, 2016 Vulkan 1.0.35 spec update:
* Bump API patch number and header version number to 35 for this update.
Github Issues:
* Document in the <<memory-device-hostaccess,Host Access>> section that
mapping and unmapping does not invalidate or flush the mapped memory
(public issues 27, 126).
* Redefine the entire <<synchronization>> chapter in terms of consistent
and well defined terminology, that's called out at the start of the
chapter. This terminology is applied equally to all synchronization
types, including subpass dependencies, submissions, and much of the
implicit ordering stuff dotted around the spec. Key terms are laid out
in the <<synchronization-dependencies,Execution and Memory
Dependencies>> section at the top of the rewritten chapter (public
issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
* Specify order of submission for batches in the
<<vkQueueSubmit,vkQueueSubmit>> and
<<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
* Add valid usage statements to each of the WSI extension sections
indicating that the WSI-specific structure parameters must be valid, and
remove automatically generated valid usage statements now covered by the
manual sections (public issue 383).
* Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
issue 390).
Internal Issues:
* Update +vk.xml+ to make previously explicit valid usage statements for
<<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
(internal issue 553).
* Add valid usage statement for slink:VkCreateImageInfo preventing
creation of 1D sparse images (internal issue 573).
* Fix Python scripts to always read/write files in utf-8 encoding, and a
logic error in reflib.py which could cause a fatal error for
malstructured asciidoc (internal issues 578, 586).
2016-11-26 10:33:44 +00:00
|
|
|
VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
|
|
|
|
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
|
|
|
|
VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
|
|
|
|
VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
|
2017-08-20 08:06:59 +00:00
|
|
|
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
|
|
|
|
VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
|
|
|
|
VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
|
2017-03-11 01:39:29 +00:00
|
|
|
VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
|
2017-03-11 01:39:29 +00:00
|
|
|
VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
|
Change log for May 12, 2017 Vulkan 1.0.49 spec update:
* Bump API patch number and header version number to 49 for this update.
Github Issues:
* Modify reference page extraction script to make internal links to spec
anchors refer to the core specification instead of being dangling links
(public issue 455).
* Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
published StorageBuffer class (public issue 466).
* Both flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties return
ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
application providing a layer name that wasn't returned by
ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
* The specification for flink:VkApplicationInfo::apiVersion says that the
driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
pname:apiVersion specifies a non-supported version. That means that the
valid usage should not also state that, and so the VU statement is
removed. The VU had language about "`an effective substitute`" that
would have been lost, and so it was moved to the pname:apiVersion
description (public issue 488).
Internal Issues:
* Modify implicit validity generator script to assign asciidoc anchors to
all valid usage statements it generates, and reflow.py script to insert
Valid Usage ID (VUID) tags into the specification source files for
explicit valid usage statements. This has no semantic effects on the
specification, but will support the validation layer's detection of
valid usage violations and allow it to link into the corresponding part
of the specification (internal issue 583).
* Assign VUID tags to all explicit VU statements and document
the process and tag format in the style guide (internal issue 583).
* Clarify the rules of whether to structure new functionality as instance
extensions, device extensions, or both in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (internal issue 749).
* Require that SPIR-V run-time arrays are only used with the
code:BufferBlock decoration (internal issue 750).
* Fix implicit and explicit valid usage statements for
slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
* Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
section (internal issue 770).
* Clarify that disabling depth testing also disables depth writes in the
<<fragops-ds-state, Depth and Stencil Operations>> section (internal
issue 775).
* flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
imageLayout at the time the image is accessed. This was in the spec
text, but needed an associated valid usage statement.
* Note that only 32-bit atomic operations are supported in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Note that code:UniformConstant variables must not have initializers in
the <<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Add a new elink:VkObjectType enumeration to the core API, promoted from
elink:VkDebugObjectTypeEXT, since it is used for much more than just the
debug_report extension.
New Extensions:
* `VK_KHR_get_surface_capabilities2`
* `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
|
|
|
VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
|
2017-07-12 00:57:41 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
|
|
|
|
VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
|
|
|
|
VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
|
|
|
|
VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
|
|
|
|
VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
|
|
|
|
VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
|
|
|
|
VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
|
|
|
|
VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
|
|
|
|
VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
|
Change log for May 12, 2017 Vulkan 1.0.49 spec update:
* Bump API patch number and header version number to 49 for this update.
Github Issues:
* Modify reference page extraction script to make internal links to spec
anchors refer to the core specification instead of being dangling links
(public issue 455).
* Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
published StorageBuffer class (public issue 466).
* Both flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties return
ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
application providing a layer name that wasn't returned by
ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
* The specification for flink:VkApplicationInfo::apiVersion says that the
driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
pname:apiVersion specifies a non-supported version. That means that the
valid usage should not also state that, and so the VU statement is
removed. The VU had language about "`an effective substitute`" that
would have been lost, and so it was moved to the pname:apiVersion
description (public issue 488).
Internal Issues:
* Modify implicit validity generator script to assign asciidoc anchors to
all valid usage statements it generates, and reflow.py script to insert
Valid Usage ID (VUID) tags into the specification source files for
explicit valid usage statements. This has no semantic effects on the
specification, but will support the validation layer's detection of
valid usage violations and allow it to link into the corresponding part
of the specification (internal issue 583).
* Assign VUID tags to all explicit VU statements and document
the process and tag format in the style guide (internal issue 583).
* Clarify the rules of whether to structure new functionality as instance
extensions, device extensions, or both in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (internal issue 749).
* Require that SPIR-V run-time arrays are only used with the
code:BufferBlock decoration (internal issue 750).
* Fix implicit and explicit valid usage statements for
slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
* Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
section (internal issue 770).
* Clarify that disabling depth testing also disables depth writes in the
<<fragops-ds-state, Depth and Stencil Operations>> section (internal
issue 775).
* flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
imageLayout at the time the image is accessed. This was in the spec
text, but needed an associated valid usage statement.
* Note that only 32-bit atomic operations are supported in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Note that code:UniformConstant variables must not have initializers in
the <<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Add a new elink:VkObjectType enumeration to the core API, promoted from
elink:VkDebugObjectTypeEXT, since it is used for much more than just the
debug_report extension.
New Extensions:
* `VK_KHR_get_surface_capabilities2`
* `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
|
|
|
|
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
|
|
|
|
VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
|
2017-07-12 00:57:41 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
|
|
|
|
VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
|
2017-07-12 00:57:41 +00:00
|
|
|
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
|
Change log for June 24, 2017 Vulkan 1.0.53 spec update:
* Bump API patch number and header version number to 53 for this update.
Github Issues:
Internal Issues:
* Clarify mappings of coordinates for mutable, compatible image views in
slink:VkImageViewCreateInfo (internal issue 815).
* Make ename:VK_BIND_SFR_BIT require a logical device with multiple
physical devices, so that standard sparse image block dimensions are
only required on systems that support multi-GPU (internal issue 835).
* Convert all files from use of // refBegin .. // refEnd comments to
delimit ref pages, to use of open blocks, and update style guide
accordingly (internal issue 839).
* Add valid usage for slink:VkWriteDescriptorSet when performing updates
to a ename:VK_STORAGE_IMAGE descriptor with layout
ename:VK_IMAGE_LAYOUT_GENERAL.
* Add a hack to the validity generator script to support an odd
interaction between flink:vkCmdFillBuffer and an extension (internal
issue 853).
* Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
which was already covered by implicit valid usage (internal issue 854).
* Update implicit validity generator script to properly handle the
pname:sType and pname:pNext members of "returnedonly" structures
(internal issue 874).
* Note that slink:VkApplicationInfo::pname:pApplicationName &
slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
implicit valid usage statements for flink:vkDestroyInstance.
* Added missing valid usage for flink:vkCmdWriteTimestamp to require a
timestamp query pool.
* Simplify and/or split "`non-atomic`" valid usage statements.
New Extensions:
* `VK_AMD_gpu_shader_int16`
* `VK_EXT_blend_operation_advanced`
* `VK_EXT_sampler_filter_minmax`
* `VK_NV_framebuffer_mixed_samples`
-----------------------------------------------------
Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release
combines both change sets.
-----------------------------------------------------
Change log for June 13, 2017 Vulkan 1.0.52 spec update:
* Bump API patch number and header version number to 52 for this update.
Github Issues:
Internal Issues:
* Clarify behavior when non-coherent memory has
<<memory-device-unmap-does-not-flush, not been flushed before being
unmapped>> (internal issue 819).
* Fix description of code:WorkgroupSize builtin to note it decorates an
object, not a variable (internal issue 836).
* Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
equations are rendered properly (internal issue 845).
* Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
section of the Procedures and Conventions document stating that any new
handle type requires a corresponding entry in the elink:VkObjectType
enumerated type (internal issue 856).
* Update style guide to use slink macro for Vulkan handle type names, and
define narrow conditions under which to use the *name and *text macros
instead of *link (internal issue 886).
* Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
appendix.
* Change the copyright on Vulkan specification asciidoc *source* files to
CC-BY 4.0, and update the proprietary Khronos copyright applied to the
generated *output* formats (internal issue 327). This enables broader
re-use and modification of the Vulkan specification sources, while not
affecting the Reciprocal IP License between Vulkan Adopters and Working
Group Members.
New Extensions:
* `VK_NV_fill_rectangle`
* `VK_NV_fragment_coverage_to_color`
2017-06-27 02:32:10 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
|
|
|
|
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
|
|
|
|
VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
|
|
|
|
VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
|
2017-07-12 00:57:41 +00:00
|
|
|
VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
|
|
|
|
VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
|
Change log for June 24, 2017 Vulkan 1.0.53 spec update:
* Bump API patch number and header version number to 53 for this update.
Github Issues:
Internal Issues:
* Clarify mappings of coordinates for mutable, compatible image views in
slink:VkImageViewCreateInfo (internal issue 815).
* Make ename:VK_BIND_SFR_BIT require a logical device with multiple
physical devices, so that standard sparse image block dimensions are
only required on systems that support multi-GPU (internal issue 835).
* Convert all files from use of // refBegin .. // refEnd comments to
delimit ref pages, to use of open blocks, and update style guide
accordingly (internal issue 839).
* Add valid usage for slink:VkWriteDescriptorSet when performing updates
to a ename:VK_STORAGE_IMAGE descriptor with layout
ename:VK_IMAGE_LAYOUT_GENERAL.
* Add a hack to the validity generator script to support an odd
interaction between flink:vkCmdFillBuffer and an extension (internal
issue 853).
* Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
which was already covered by implicit valid usage (internal issue 854).
* Update implicit validity generator script to properly handle the
pname:sType and pname:pNext members of "returnedonly" structures
(internal issue 874).
* Note that slink:VkApplicationInfo::pname:pApplicationName &
slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
implicit valid usage statements for flink:vkDestroyInstance.
* Added missing valid usage for flink:vkCmdWriteTimestamp to require a
timestamp query pool.
* Simplify and/or split "`non-atomic`" valid usage statements.
New Extensions:
* `VK_AMD_gpu_shader_int16`
* `VK_EXT_blend_operation_advanced`
* `VK_EXT_sampler_filter_minmax`
* `VK_NV_framebuffer_mixed_samples`
-----------------------------------------------------
Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release
combines both change sets.
-----------------------------------------------------
Change log for June 13, 2017 Vulkan 1.0.52 spec update:
* Bump API patch number and header version number to 52 for this update.
Github Issues:
Internal Issues:
* Clarify behavior when non-coherent memory has
<<memory-device-unmap-does-not-flush, not been flushed before being
unmapped>> (internal issue 819).
* Fix description of code:WorkgroupSize builtin to note it decorates an
object, not a variable (internal issue 836).
* Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
equations are rendered properly (internal issue 845).
* Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
section of the Procedures and Conventions document stating that any new
handle type requires a corresponding entry in the elink:VkObjectType
enumerated type (internal issue 856).
* Update style guide to use slink macro for Vulkan handle type names, and
define narrow conditions under which to use the *name and *text macros
instead of *link (internal issue 886).
* Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
appendix.
* Change the copyright on Vulkan specification asciidoc *source* files to
CC-BY 4.0, and update the proprietary Khronos copyright applied to the
generated *output* formats (internal issue 327). This enables broader
re-use and modification of the Vulkan specification sources, while not
affecting the Reciprocal IP License between Vulkan Adopters and Working
Group Members.
New Extensions:
* `VK_NV_fill_rectangle`
* `VK_NV_fragment_coverage_to_color`
2017-06-27 02:32:10 +00:00
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
|
|
|
|
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
|
|
|
|
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
|
|
|
|
VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
|
|
|
|
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
|
|
|
|
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
|
|
|
|
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
|
|
|
|
VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
|
Change log for October 13, 2017 Vulkan 1.0.63 spec update:
* Bump API patch number and header version number to 63 for this update.
Github Issues:
* Add missing valid usage statements for ptext:maxDescriptorSets*,
ptext:maxPerStageDescriptorInputAttachments, and
ptext:maxPerStageResources to slink:VkPipelineLayoutCreateInfo.txt,
flink:VkComputePipelineCreateInfo, and
flink:VkGraphicsPipelineCreateInfo (public issue 546).
* Fix typos in ftext:vkCmdDraw*AMD descriptions (public pull request 549).
* Fixed flink:vkCmdWriteTimestamp so it is not unnecessarily restricted to
queues supporting graphics or compute operations (public issue 558).
* Improvements to valid usage generator for output `*Flags` pointer
parameters and for some `void *` parameters (public pull requests 560,
562).
* Document `altlen` attribute in XML schema as valid C99 syntax and tweak
`vk.xml` to match (public pull request 566).
* Clarify when pname:fence is signaled by flink:vkQueueSubmit in a more
obvious place (public issue 577).
Internal Issues:
* Specify a whitelist of supported SPIR-V Storage Classes in the
<<spirvenv-module-validation, Validation Rules within a Module>>
appendix (internal SPIR-V issue 166).
* Relax the shared semaphore wait timeout requirement in the
<<synchronization-semaphores-importing, Importing Semaphore Payloads>>
section (internal issue 820).
* Update the <<textures-image-level-selection, Image Level(s) Selection>>
equations so that the parameters returned by the level-of-detail query
appear explicitly, also fixing the issue that linear filtering would
select a level below the base level for magnification (internal issue
926).
* Disallow creation of a swapchain with zero pname:imageExtent in
slink:VkSurfaceCapabilitiesKHR and slink:VkSwapchainCreateInfoKHR
(internal issue 1020).
Other Issues:
* Clarify in <<textures-operation-validation,Image View Validation>> that
the layout of subresources in an image view must have a layout that
matches that written into the descriptor, and that this section is about
validating image views, not images.
New Extensions:
* `VK_EXT_global_priority`
2017-10-13 02:57:47 +00:00
|
|
|
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
|
2017-11-27 09:07:06 +00:00
|
|
|
VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
|
|
|
|
VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
|
|
|
|
VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
|
|
|
|
VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkStructureType;
|
|
|
|
|
|
|
|
typedef enum VkSystemAllocationScope {
|
|
|
|
VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
|
|
|
|
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
|
|
|
|
VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
|
|
|
|
VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
|
|
|
|
VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
|
|
|
|
VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
|
|
|
|
VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
|
|
|
|
VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
|
|
|
|
VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkSystemAllocationScope;
|
|
|
|
|
|
|
|
typedef enum VkInternalAllocationType {
|
|
|
|
VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
|
|
|
|
VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
|
|
|
|
VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
|
|
|
|
VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
|
|
|
|
VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkInternalAllocationType;
|
|
|
|
|
|
|
|
typedef enum VkFormat {
|
|
|
|
VK_FORMAT_UNDEFINED = 0,
|
|
|
|
VK_FORMAT_R4G4_UNORM_PACK8 = 1,
|
|
|
|
VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
|
|
|
|
VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
|
|
|
|
VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
|
|
|
|
VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
|
|
|
|
VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
|
|
|
|
VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
|
|
|
|
VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
|
|
|
|
VK_FORMAT_R8_UNORM = 9,
|
|
|
|
VK_FORMAT_R8_SNORM = 10,
|
|
|
|
VK_FORMAT_R8_USCALED = 11,
|
|
|
|
VK_FORMAT_R8_SSCALED = 12,
|
|
|
|
VK_FORMAT_R8_UINT = 13,
|
|
|
|
VK_FORMAT_R8_SINT = 14,
|
|
|
|
VK_FORMAT_R8_SRGB = 15,
|
|
|
|
VK_FORMAT_R8G8_UNORM = 16,
|
|
|
|
VK_FORMAT_R8G8_SNORM = 17,
|
|
|
|
VK_FORMAT_R8G8_USCALED = 18,
|
|
|
|
VK_FORMAT_R8G8_SSCALED = 19,
|
|
|
|
VK_FORMAT_R8G8_UINT = 20,
|
|
|
|
VK_FORMAT_R8G8_SINT = 21,
|
|
|
|
VK_FORMAT_R8G8_SRGB = 22,
|
|
|
|
VK_FORMAT_R8G8B8_UNORM = 23,
|
|
|
|
VK_FORMAT_R8G8B8_SNORM = 24,
|
|
|
|
VK_FORMAT_R8G8B8_USCALED = 25,
|
|
|
|
VK_FORMAT_R8G8B8_SSCALED = 26,
|
|
|
|
VK_FORMAT_R8G8B8_UINT = 27,
|
|
|
|
VK_FORMAT_R8G8B8_SINT = 28,
|
|
|
|
VK_FORMAT_R8G8B8_SRGB = 29,
|
|
|
|
VK_FORMAT_B8G8R8_UNORM = 30,
|
|
|
|
VK_FORMAT_B8G8R8_SNORM = 31,
|
|
|
|
VK_FORMAT_B8G8R8_USCALED = 32,
|
|
|
|
VK_FORMAT_B8G8R8_SSCALED = 33,
|
|
|
|
VK_FORMAT_B8G8R8_UINT = 34,
|
|
|
|
VK_FORMAT_B8G8R8_SINT = 35,
|
|
|
|
VK_FORMAT_B8G8R8_SRGB = 36,
|
|
|
|
VK_FORMAT_R8G8B8A8_UNORM = 37,
|
|
|
|
VK_FORMAT_R8G8B8A8_SNORM = 38,
|
|
|
|
VK_FORMAT_R8G8B8A8_USCALED = 39,
|
|
|
|
VK_FORMAT_R8G8B8A8_SSCALED = 40,
|
|
|
|
VK_FORMAT_R8G8B8A8_UINT = 41,
|
|
|
|
VK_FORMAT_R8G8B8A8_SINT = 42,
|
|
|
|
VK_FORMAT_R8G8B8A8_SRGB = 43,
|
|
|
|
VK_FORMAT_B8G8R8A8_UNORM = 44,
|
|
|
|
VK_FORMAT_B8G8R8A8_SNORM = 45,
|
|
|
|
VK_FORMAT_B8G8R8A8_USCALED = 46,
|
|
|
|
VK_FORMAT_B8G8R8A8_SSCALED = 47,
|
|
|
|
VK_FORMAT_B8G8R8A8_UINT = 48,
|
|
|
|
VK_FORMAT_B8G8R8A8_SINT = 49,
|
|
|
|
VK_FORMAT_B8G8R8A8_SRGB = 50,
|
|
|
|
VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
|
|
|
|
VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
|
|
|
|
VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
|
|
|
|
VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
|
|
|
|
VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
|
|
|
|
VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
|
|
|
|
VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
|
|
|
|
VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
|
|
|
|
VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
|
|
|
|
VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
|
|
|
|
VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
|
|
|
|
VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
|
|
|
|
VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
|
|
|
|
VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
|
|
|
|
VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
|
|
|
|
VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
|
|
|
|
VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
|
|
|
|
VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
|
|
|
|
VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
|
|
|
|
VK_FORMAT_R16_UNORM = 70,
|
|
|
|
VK_FORMAT_R16_SNORM = 71,
|
|
|
|
VK_FORMAT_R16_USCALED = 72,
|
|
|
|
VK_FORMAT_R16_SSCALED = 73,
|
|
|
|
VK_FORMAT_R16_UINT = 74,
|
|
|
|
VK_FORMAT_R16_SINT = 75,
|
|
|
|
VK_FORMAT_R16_SFLOAT = 76,
|
|
|
|
VK_FORMAT_R16G16_UNORM = 77,
|
|
|
|
VK_FORMAT_R16G16_SNORM = 78,
|
|
|
|
VK_FORMAT_R16G16_USCALED = 79,
|
|
|
|
VK_FORMAT_R16G16_SSCALED = 80,
|
|
|
|
VK_FORMAT_R16G16_UINT = 81,
|
|
|
|
VK_FORMAT_R16G16_SINT = 82,
|
|
|
|
VK_FORMAT_R16G16_SFLOAT = 83,
|
|
|
|
VK_FORMAT_R16G16B16_UNORM = 84,
|
|
|
|
VK_FORMAT_R16G16B16_SNORM = 85,
|
|
|
|
VK_FORMAT_R16G16B16_USCALED = 86,
|
|
|
|
VK_FORMAT_R16G16B16_SSCALED = 87,
|
|
|
|
VK_FORMAT_R16G16B16_UINT = 88,
|
|
|
|
VK_FORMAT_R16G16B16_SINT = 89,
|
|
|
|
VK_FORMAT_R16G16B16_SFLOAT = 90,
|
|
|
|
VK_FORMAT_R16G16B16A16_UNORM = 91,
|
|
|
|
VK_FORMAT_R16G16B16A16_SNORM = 92,
|
|
|
|
VK_FORMAT_R16G16B16A16_USCALED = 93,
|
|
|
|
VK_FORMAT_R16G16B16A16_SSCALED = 94,
|
|
|
|
VK_FORMAT_R16G16B16A16_UINT = 95,
|
|
|
|
VK_FORMAT_R16G16B16A16_SINT = 96,
|
|
|
|
VK_FORMAT_R16G16B16A16_SFLOAT = 97,
|
|
|
|
VK_FORMAT_R32_UINT = 98,
|
|
|
|
VK_FORMAT_R32_SINT = 99,
|
|
|
|
VK_FORMAT_R32_SFLOAT = 100,
|
|
|
|
VK_FORMAT_R32G32_UINT = 101,
|
|
|
|
VK_FORMAT_R32G32_SINT = 102,
|
|
|
|
VK_FORMAT_R32G32_SFLOAT = 103,
|
|
|
|
VK_FORMAT_R32G32B32_UINT = 104,
|
|
|
|
VK_FORMAT_R32G32B32_SINT = 105,
|
|
|
|
VK_FORMAT_R32G32B32_SFLOAT = 106,
|
|
|
|
VK_FORMAT_R32G32B32A32_UINT = 107,
|
|
|
|
VK_FORMAT_R32G32B32A32_SINT = 108,
|
|
|
|
VK_FORMAT_R32G32B32A32_SFLOAT = 109,
|
|
|
|
VK_FORMAT_R64_UINT = 110,
|
|
|
|
VK_FORMAT_R64_SINT = 111,
|
|
|
|
VK_FORMAT_R64_SFLOAT = 112,
|
|
|
|
VK_FORMAT_R64G64_UINT = 113,
|
|
|
|
VK_FORMAT_R64G64_SINT = 114,
|
|
|
|
VK_FORMAT_R64G64_SFLOAT = 115,
|
|
|
|
VK_FORMAT_R64G64B64_UINT = 116,
|
|
|
|
VK_FORMAT_R64G64B64_SINT = 117,
|
|
|
|
VK_FORMAT_R64G64B64_SFLOAT = 118,
|
|
|
|
VK_FORMAT_R64G64B64A64_UINT = 119,
|
|
|
|
VK_FORMAT_R64G64B64A64_SINT = 120,
|
|
|
|
VK_FORMAT_R64G64B64A64_SFLOAT = 121,
|
|
|
|
VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
|
|
|
|
VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
|
|
|
|
VK_FORMAT_D16_UNORM = 124,
|
|
|
|
VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
|
|
|
|
VK_FORMAT_D32_SFLOAT = 126,
|
|
|
|
VK_FORMAT_S8_UINT = 127,
|
|
|
|
VK_FORMAT_D16_UNORM_S8_UINT = 128,
|
|
|
|
VK_FORMAT_D24_UNORM_S8_UINT = 129,
|
|
|
|
VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
|
|
|
|
VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
|
|
|
|
VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
|
|
|
|
VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
|
|
|
|
VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
|
|
|
|
VK_FORMAT_BC2_UNORM_BLOCK = 135,
|
|
|
|
VK_FORMAT_BC2_SRGB_BLOCK = 136,
|
|
|
|
VK_FORMAT_BC3_UNORM_BLOCK = 137,
|
|
|
|
VK_FORMAT_BC3_SRGB_BLOCK = 138,
|
|
|
|
VK_FORMAT_BC4_UNORM_BLOCK = 139,
|
|
|
|
VK_FORMAT_BC4_SNORM_BLOCK = 140,
|
|
|
|
VK_FORMAT_BC5_UNORM_BLOCK = 141,
|
|
|
|
VK_FORMAT_BC5_SNORM_BLOCK = 142,
|
|
|
|
VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
|
|
|
|
VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
|
|
|
|
VK_FORMAT_BC7_UNORM_BLOCK = 145,
|
|
|
|
VK_FORMAT_BC7_SRGB_BLOCK = 146,
|
|
|
|
VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
|
|
|
|
VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
|
|
|
|
VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
|
|
|
|
VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
|
|
|
|
VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
|
|
|
|
VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
|
|
|
|
VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
|
|
|
|
VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
|
|
|
|
VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
|
|
|
|
VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
|
|
|
|
VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
|
|
|
|
VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
|
|
|
|
VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
|
|
|
|
VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
|
|
|
|
VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
|
|
|
|
VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
|
|
|
|
VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
|
|
|
|
VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
|
|
|
|
VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
|
|
|
|
VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
|
|
|
|
VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
|
|
|
|
VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
|
|
|
|
VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
|
|
|
|
VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
|
|
|
|
VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
|
|
|
|
VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
|
|
|
|
VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
|
|
|
|
VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
|
|
|
|
VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
|
|
|
|
VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
|
|
|
|
VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
|
|
|
|
VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
|
|
|
|
VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
|
|
|
|
VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
|
|
|
|
VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
|
|
|
|
VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
|
|
|
|
VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
|
|
|
|
VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
|
2016-08-12 11:25:36 +00:00
|
|
|
VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
|
|
|
|
VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
|
|
|
|
VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
|
|
|
|
VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
|
|
|
|
VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
|
|
|
|
VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
|
|
|
|
VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
|
|
|
|
VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
|
|
|
|
VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
|
|
|
|
VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
|
|
|
|
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
|
|
|
|
VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
|
|
|
|
VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
|
|
|
|
VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
|
|
|
|
VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
|
|
|
|
VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
|
|
|
|
VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
|
|
|
|
VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
|
|
|
|
VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
|
|
|
|
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
|
|
|
|
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
|
|
|
|
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
|
|
|
|
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
|
|
|
|
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
|
|
|
|
VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
|
|
|
|
VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
|
|
|
|
VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
|
|
|
|
VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
|
|
|
|
VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
|
|
|
|
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
|
|
|
|
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
|
|
|
|
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
|
|
|
|
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
|
|
|
|
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
|
|
|
|
VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
|
|
|
|
VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
|
|
|
|
VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
|
|
|
|
VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
|
|
|
|
VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
|
|
|
|
VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
|
|
|
|
VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
|
|
|
|
VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
|
|
|
|
VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
|
|
|
|
VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkFormat;
|
|
|
|
|
|
|
|
typedef enum VkImageType {
|
|
|
|
VK_IMAGE_TYPE_1D = 0,
|
|
|
|
VK_IMAGE_TYPE_2D = 1,
|
|
|
|
VK_IMAGE_TYPE_3D = 2,
|
|
|
|
VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
|
|
|
|
VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
|
|
|
|
VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
|
|
|
|
VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkImageType;
|
|
|
|
|
|
|
|
typedef enum VkImageTiling {
|
|
|
|
VK_IMAGE_TILING_OPTIMAL = 0,
|
|
|
|
VK_IMAGE_TILING_LINEAR = 1,
|
|
|
|
VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
|
|
|
|
VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
|
|
|
|
VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
|
|
|
|
VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkImageTiling;
|
|
|
|
|
|
|
|
typedef enum VkPhysicalDeviceType {
|
|
|
|
VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
|
|
|
|
VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
|
|
|
|
VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
|
|
|
|
VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
|
|
|
|
VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
|
|
|
|
VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
|
|
|
|
VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
|
|
|
|
VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
|
|
|
|
VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkPhysicalDeviceType;
|
|
|
|
|
|
|
|
typedef enum VkQueryType {
|
|
|
|
VK_QUERY_TYPE_OCCLUSION = 0,
|
|
|
|
VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
|
|
|
|
VK_QUERY_TYPE_TIMESTAMP = 2,
|
|
|
|
VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
|
|
|
|
VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
|
|
|
|
VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
|
|
|
|
VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkQueryType;
|
|
|
|
|
|
|
|
typedef enum VkSharingMode {
|
|
|
|
VK_SHARING_MODE_EXCLUSIVE = 0,
|
|
|
|
VK_SHARING_MODE_CONCURRENT = 1,
|
|
|
|
VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
|
|
|
|
VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
|
|
|
|
VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
|
|
|
|
VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkSharingMode;
|
|
|
|
|
|
|
|
typedef enum VkImageLayout {
|
|
|
|
VK_IMAGE_LAYOUT_UNDEFINED = 0,
|
|
|
|
VK_IMAGE_LAYOUT_GENERAL = 1,
|
|
|
|
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
|
|
|
|
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
|
|
|
|
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
|
|
|
|
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
|
|
|
|
VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
|
|
|
|
VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
|
Change log for May 12, 2017 Vulkan 1.0.49 spec update:
* Bump API patch number and header version number to 49 for this update.
Github Issues:
* Modify reference page extraction script to make internal links to spec
anchors refer to the core specification instead of being dangling links
(public issue 455).
* Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
published StorageBuffer class (public issue 466).
* Both flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties return
ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
application providing a layer name that wasn't returned by
ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
* The specification for flink:VkApplicationInfo::apiVersion says that the
driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
pname:apiVersion specifies a non-supported version. That means that the
valid usage should not also state that, and so the VU statement is
removed. The VU had language about "`an effective substitute`" that
would have been lost, and so it was moved to the pname:apiVersion
description (public issue 488).
Internal Issues:
* Modify implicit validity generator script to assign asciidoc anchors to
all valid usage statements it generates, and reflow.py script to insert
Valid Usage ID (VUID) tags into the specification source files for
explicit valid usage statements. This has no semantic effects on the
specification, but will support the validation layer's detection of
valid usage violations and allow it to link into the corresponding part
of the specification (internal issue 583).
* Assign VUID tags to all explicit VU statements and document
the process and tag format in the style guide (internal issue 583).
* Clarify the rules of whether to structure new functionality as instance
extensions, device extensions, or both in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (internal issue 749).
* Require that SPIR-V run-time arrays are only used with the
code:BufferBlock decoration (internal issue 750).
* Fix implicit and explicit valid usage statements for
slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
* Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
section (internal issue 770).
* Clarify that disabling depth testing also disables depth writes in the
<<fragops-ds-state, Depth and Stencil Operations>> section (internal
issue 775).
* flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
imageLayout at the time the image is accessed. This was in the spec
text, but needed an associated valid usage statement.
* Note that only 32-bit atomic operations are supported in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Note that code:UniformConstant variables must not have initializers in
the <<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Add a new elink:VkObjectType enumeration to the core API, promoted from
elink:VkDebugObjectTypeEXT, since it is used for much more than just the
debug_report extension.
New Extensions:
* `VK_KHR_get_surface_capabilities2`
* `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
|
|
|
VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
|
|
|
|
VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
|
|
|
|
VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
|
|
|
|
VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkImageLayout;
|
|
|
|
|
|
|
|
typedef enum VkImageViewType {
|
|
|
|
VK_IMAGE_VIEW_TYPE_1D = 0,
|
|
|
|
VK_IMAGE_VIEW_TYPE_2D = 1,
|
|
|
|
VK_IMAGE_VIEW_TYPE_3D = 2,
|
|
|
|
VK_IMAGE_VIEW_TYPE_CUBE = 3,
|
|
|
|
VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
|
|
|
|
VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
|
|
|
|
VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
|
|
|
|
VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
|
|
|
|
VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
|
|
|
|
VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
|
|
|
|
VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkImageViewType;
|
|
|
|
|
|
|
|
typedef enum VkComponentSwizzle {
|
|
|
|
VK_COMPONENT_SWIZZLE_IDENTITY = 0,
|
|
|
|
VK_COMPONENT_SWIZZLE_ZERO = 1,
|
|
|
|
VK_COMPONENT_SWIZZLE_ONE = 2,
|
|
|
|
VK_COMPONENT_SWIZZLE_R = 3,
|
|
|
|
VK_COMPONENT_SWIZZLE_G = 4,
|
|
|
|
VK_COMPONENT_SWIZZLE_B = 5,
|
|
|
|
VK_COMPONENT_SWIZZLE_A = 6,
|
|
|
|
VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
|
|
|
|
VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
|
|
|
|
VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
|
|
|
|
VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkComponentSwizzle;
|
|
|
|
|
|
|
|
typedef enum VkVertexInputRate {
|
|
|
|
VK_VERTEX_INPUT_RATE_VERTEX = 0,
|
|
|
|
VK_VERTEX_INPUT_RATE_INSTANCE = 1,
|
|
|
|
VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
|
|
|
|
VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
|
|
|
|
VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
|
|
|
|
VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkVertexInputRate;
|
|
|
|
|
|
|
|
typedef enum VkPrimitiveTopology {
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
|
|
|
|
VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkPrimitiveTopology;
|
|
|
|
|
|
|
|
typedef enum VkPolygonMode {
|
|
|
|
VK_POLYGON_MODE_FILL = 0,
|
|
|
|
VK_POLYGON_MODE_LINE = 1,
|
|
|
|
VK_POLYGON_MODE_POINT = 2,
|
Change log for June 24, 2017 Vulkan 1.0.53 spec update:
* Bump API patch number and header version number to 53 for this update.
Github Issues:
Internal Issues:
* Clarify mappings of coordinates for mutable, compatible image views in
slink:VkImageViewCreateInfo (internal issue 815).
* Make ename:VK_BIND_SFR_BIT require a logical device with multiple
physical devices, so that standard sparse image block dimensions are
only required on systems that support multi-GPU (internal issue 835).
* Convert all files from use of // refBegin .. // refEnd comments to
delimit ref pages, to use of open blocks, and update style guide
accordingly (internal issue 839).
* Add valid usage for slink:VkWriteDescriptorSet when performing updates
to a ename:VK_STORAGE_IMAGE descriptor with layout
ename:VK_IMAGE_LAYOUT_GENERAL.
* Add a hack to the validity generator script to support an odd
interaction between flink:vkCmdFillBuffer and an extension (internal
issue 853).
* Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
which was already covered by implicit valid usage (internal issue 854).
* Update implicit validity generator script to properly handle the
pname:sType and pname:pNext members of "returnedonly" structures
(internal issue 874).
* Note that slink:VkApplicationInfo::pname:pApplicationName &
slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
implicit valid usage statements for flink:vkDestroyInstance.
* Added missing valid usage for flink:vkCmdWriteTimestamp to require a
timestamp query pool.
* Simplify and/or split "`non-atomic`" valid usage statements.
New Extensions:
* `VK_AMD_gpu_shader_int16`
* `VK_EXT_blend_operation_advanced`
* `VK_EXT_sampler_filter_minmax`
* `VK_NV_framebuffer_mixed_samples`
-----------------------------------------------------
Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release
combines both change sets.
-----------------------------------------------------
Change log for June 13, 2017 Vulkan 1.0.52 spec update:
* Bump API patch number and header version number to 52 for this update.
Github Issues:
Internal Issues:
* Clarify behavior when non-coherent memory has
<<memory-device-unmap-does-not-flush, not been flushed before being
unmapped>> (internal issue 819).
* Fix description of code:WorkgroupSize builtin to note it decorates an
object, not a variable (internal issue 836).
* Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
equations are rendered properly (internal issue 845).
* Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
section of the Procedures and Conventions document stating that any new
handle type requires a corresponding entry in the elink:VkObjectType
enumerated type (internal issue 856).
* Update style guide to use slink macro for Vulkan handle type names, and
define narrow conditions under which to use the *name and *text macros
instead of *link (internal issue 886).
* Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
appendix.
* Change the copyright on Vulkan specification asciidoc *source* files to
CC-BY 4.0, and update the proprietary Khronos copyright applied to the
generated *output* formats (internal issue 327). This enables broader
re-use and modification of the Vulkan specification sources, while not
affecting the Reciprocal IP License between Vulkan Adopters and Working
Group Members.
New Extensions:
* `VK_NV_fill_rectangle`
* `VK_NV_fragment_coverage_to_color`
2017-06-27 02:32:10 +00:00
|
|
|
VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
|
|
|
|
VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
|
|
|
|
VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
|
|
|
|
VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkPolygonMode;
|
|
|
|
|
|
|
|
typedef enum VkFrontFace {
|
|
|
|
VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
|
|
|
|
VK_FRONT_FACE_CLOCKWISE = 1,
|
|
|
|
VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
|
|
|
|
VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
|
|
|
|
VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
|
|
|
|
VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkFrontFace;
|
|
|
|
|
|
|
|
typedef enum VkCompareOp {
|
|
|
|
VK_COMPARE_OP_NEVER = 0,
|
|
|
|
VK_COMPARE_OP_LESS = 1,
|
|
|
|
VK_COMPARE_OP_EQUAL = 2,
|
|
|
|
VK_COMPARE_OP_LESS_OR_EQUAL = 3,
|
|
|
|
VK_COMPARE_OP_GREATER = 4,
|
|
|
|
VK_COMPARE_OP_NOT_EQUAL = 5,
|
|
|
|
VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
|
|
|
|
VK_COMPARE_OP_ALWAYS = 7,
|
|
|
|
VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
|
|
|
|
VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
|
|
|
|
VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
|
|
|
|
VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkCompareOp;
|
|
|
|
|
|
|
|
typedef enum VkStencilOp {
|
|
|
|
VK_STENCIL_OP_KEEP = 0,
|
|
|
|
VK_STENCIL_OP_ZERO = 1,
|
|
|
|
VK_STENCIL_OP_REPLACE = 2,
|
|
|
|
VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
|
|
|
|
VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
|
|
|
|
VK_STENCIL_OP_INVERT = 5,
|
|
|
|
VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
|
|
|
|
VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
|
|
|
|
VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
|
|
|
|
VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
|
|
|
|
VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
|
|
|
|
VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkStencilOp;
|
|
|
|
|
|
|
|
typedef enum VkLogicOp {
|
|
|
|
VK_LOGIC_OP_CLEAR = 0,
|
|
|
|
VK_LOGIC_OP_AND = 1,
|
|
|
|
VK_LOGIC_OP_AND_REVERSE = 2,
|
|
|
|
VK_LOGIC_OP_COPY = 3,
|
|
|
|
VK_LOGIC_OP_AND_INVERTED = 4,
|
|
|
|
VK_LOGIC_OP_NO_OP = 5,
|
|
|
|
VK_LOGIC_OP_XOR = 6,
|
|
|
|
VK_LOGIC_OP_OR = 7,
|
|
|
|
VK_LOGIC_OP_NOR = 8,
|
|
|
|
VK_LOGIC_OP_EQUIVALENT = 9,
|
|
|
|
VK_LOGIC_OP_INVERT = 10,
|
|
|
|
VK_LOGIC_OP_OR_REVERSE = 11,
|
|
|
|
VK_LOGIC_OP_COPY_INVERTED = 12,
|
|
|
|
VK_LOGIC_OP_OR_INVERTED = 13,
|
|
|
|
VK_LOGIC_OP_NAND = 14,
|
|
|
|
VK_LOGIC_OP_SET = 15,
|
|
|
|
VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
|
|
|
|
VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
|
|
|
|
VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
|
|
|
|
VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkLogicOp;
|
|
|
|
|
|
|
|
typedef enum VkBlendFactor {
|
|
|
|
VK_BLEND_FACTOR_ZERO = 0,
|
|
|
|
VK_BLEND_FACTOR_ONE = 1,
|
|
|
|
VK_BLEND_FACTOR_SRC_COLOR = 2,
|
|
|
|
VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
|
|
|
|
VK_BLEND_FACTOR_DST_COLOR = 4,
|
|
|
|
VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
|
|
|
|
VK_BLEND_FACTOR_SRC_ALPHA = 6,
|
|
|
|
VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
|
|
|
|
VK_BLEND_FACTOR_DST_ALPHA = 8,
|
|
|
|
VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
|
|
|
|
VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
|
|
|
|
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
|
|
|
|
VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
|
|
|
|
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
|
|
|
|
VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
|
|
|
|
VK_BLEND_FACTOR_SRC1_COLOR = 15,
|
|
|
|
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
|
|
|
|
VK_BLEND_FACTOR_SRC1_ALPHA = 17,
|
|
|
|
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
|
|
|
|
VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
|
|
|
|
VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
|
|
|
|
VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
|
|
|
|
VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkBlendFactor;
|
|
|
|
|
|
|
|
typedef enum VkBlendOp {
|
|
|
|
VK_BLEND_OP_ADD = 0,
|
|
|
|
VK_BLEND_OP_SUBTRACT = 1,
|
|
|
|
VK_BLEND_OP_REVERSE_SUBTRACT = 2,
|
|
|
|
VK_BLEND_OP_MIN = 3,
|
|
|
|
VK_BLEND_OP_MAX = 4,
|
Change log for June 24, 2017 Vulkan 1.0.53 spec update:
* Bump API patch number and header version number to 53 for this update.
Github Issues:
Internal Issues:
* Clarify mappings of coordinates for mutable, compatible image views in
slink:VkImageViewCreateInfo (internal issue 815).
* Make ename:VK_BIND_SFR_BIT require a logical device with multiple
physical devices, so that standard sparse image block dimensions are
only required on systems that support multi-GPU (internal issue 835).
* Convert all files from use of // refBegin .. // refEnd comments to
delimit ref pages, to use of open blocks, and update style guide
accordingly (internal issue 839).
* Add valid usage for slink:VkWriteDescriptorSet when performing updates
to a ename:VK_STORAGE_IMAGE descriptor with layout
ename:VK_IMAGE_LAYOUT_GENERAL.
* Add a hack to the validity generator script to support an odd
interaction between flink:vkCmdFillBuffer and an extension (internal
issue 853).
* Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
which was already covered by implicit valid usage (internal issue 854).
* Update implicit validity generator script to properly handle the
pname:sType and pname:pNext members of "returnedonly" structures
(internal issue 874).
* Note that slink:VkApplicationInfo::pname:pApplicationName &
slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
implicit valid usage statements for flink:vkDestroyInstance.
* Added missing valid usage for flink:vkCmdWriteTimestamp to require a
timestamp query pool.
* Simplify and/or split "`non-atomic`" valid usage statements.
New Extensions:
* `VK_AMD_gpu_shader_int16`
* `VK_EXT_blend_operation_advanced`
* `VK_EXT_sampler_filter_minmax`
* `VK_NV_framebuffer_mixed_samples`
-----------------------------------------------------
Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release
combines both change sets.
-----------------------------------------------------
Change log for June 13, 2017 Vulkan 1.0.52 spec update:
* Bump API patch number and header version number to 52 for this update.
Github Issues:
Internal Issues:
* Clarify behavior when non-coherent memory has
<<memory-device-unmap-does-not-flush, not been flushed before being
unmapped>> (internal issue 819).
* Fix description of code:WorkgroupSize builtin to note it decorates an
object, not a variable (internal issue 836).
* Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
equations are rendered properly (internal issue 845).
* Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
section of the Procedures and Conventions document stating that any new
handle type requires a corresponding entry in the elink:VkObjectType
enumerated type (internal issue 856).
* Update style guide to use slink macro for Vulkan handle type names, and
define narrow conditions under which to use the *name and *text macros
instead of *link (internal issue 886).
* Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
appendix.
* Change the copyright on Vulkan specification asciidoc *source* files to
CC-BY 4.0, and update the proprietary Khronos copyright applied to the
generated *output* formats (internal issue 327). This enables broader
re-use and modification of the Vulkan specification sources, while not
affecting the Reciprocal IP License between Vulkan Adopters and Working
Group Members.
New Extensions:
* `VK_NV_fill_rectangle`
* `VK_NV_fragment_coverage_to_color`
2017-06-27 02:32:10 +00:00
|
|
|
VK_BLEND_OP_ZERO_EXT = 1000148000,
|
|
|
|
VK_BLEND_OP_SRC_EXT = 1000148001,
|
|
|
|
VK_BLEND_OP_DST_EXT = 1000148002,
|
|
|
|
VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
|
|
|
|
VK_BLEND_OP_DST_OVER_EXT = 1000148004,
|
|
|
|
VK_BLEND_OP_SRC_IN_EXT = 1000148005,
|
|
|
|
VK_BLEND_OP_DST_IN_EXT = 1000148006,
|
|
|
|
VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
|
|
|
|
VK_BLEND_OP_DST_OUT_EXT = 1000148008,
|
|
|
|
VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
|
|
|
|
VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
|
|
|
|
VK_BLEND_OP_XOR_EXT = 1000148011,
|
|
|
|
VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
|
|
|
|
VK_BLEND_OP_SCREEN_EXT = 1000148013,
|
|
|
|
VK_BLEND_OP_OVERLAY_EXT = 1000148014,
|
|
|
|
VK_BLEND_OP_DARKEN_EXT = 1000148015,
|
|
|
|
VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
|
|
|
|
VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
|
|
|
|
VK_BLEND_OP_COLORBURN_EXT = 1000148018,
|
|
|
|
VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
|
|
|
|
VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
|
|
|
|
VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
|
|
|
|
VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
|
|
|
|
VK_BLEND_OP_INVERT_EXT = 1000148023,
|
|
|
|
VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
|
|
|
|
VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
|
|
|
|
VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
|
|
|
|
VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
|
|
|
|
VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
|
|
|
|
VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
|
|
|
|
VK_BLEND_OP_HARDMIX_EXT = 1000148030,
|
|
|
|
VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
|
|
|
|
VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
|
|
|
|
VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
|
|
|
|
VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
|
|
|
|
VK_BLEND_OP_PLUS_EXT = 1000148035,
|
|
|
|
VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
|
|
|
|
VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
|
|
|
|
VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
|
|
|
|
VK_BLEND_OP_MINUS_EXT = 1000148039,
|
|
|
|
VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
|
|
|
|
VK_BLEND_OP_CONTRAST_EXT = 1000148041,
|
|
|
|
VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
|
|
|
|
VK_BLEND_OP_RED_EXT = 1000148043,
|
|
|
|
VK_BLEND_OP_GREEN_EXT = 1000148044,
|
|
|
|
VK_BLEND_OP_BLUE_EXT = 1000148045,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
|
|
|
|
VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
|
|
|
|
VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
|
|
|
|
VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkBlendOp;
|
|
|
|
|
|
|
|
typedef enum VkDynamicState {
|
|
|
|
VK_DYNAMIC_STATE_VIEWPORT = 0,
|
|
|
|
VK_DYNAMIC_STATE_SCISSOR = 1,
|
|
|
|
VK_DYNAMIC_STATE_LINE_WIDTH = 2,
|
|
|
|
VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
|
|
|
|
VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
|
|
|
|
VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
|
|
|
|
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
|
|
|
|
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
|
|
|
|
VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
|
|
|
|
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
|
|
|
|
VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
|
|
|
|
VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
|
|
|
|
VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkDynamicState;
|
|
|
|
|
|
|
|
typedef enum VkFilter {
|
|
|
|
VK_FILTER_NEAREST = 0,
|
|
|
|
VK_FILTER_LINEAR = 1,
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
VK_FILTER_CUBIC_IMG = 1000015000,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
|
|
|
|
VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
|
|
|
|
VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
|
|
|
|
VK_FILTER_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkFilter;
|
|
|
|
|
|
|
|
typedef enum VkSamplerMipmapMode {
|
|
|
|
VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
|
|
|
|
VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
|
|
|
|
VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
|
|
|
|
VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
|
|
|
|
VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
|
|
|
|
VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkSamplerMipmapMode;
|
|
|
|
|
|
|
|
typedef enum VkSamplerAddressMode {
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkSamplerAddressMode;
|
|
|
|
|
|
|
|
typedef enum VkBorderColor {
|
|
|
|
VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
|
|
|
|
VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
|
|
|
|
VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
|
|
|
|
VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
|
|
|
|
VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
|
|
|
|
VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
|
|
|
|
VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
|
|
|
|
VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
|
|
|
|
VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
|
|
|
|
VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkBorderColor;
|
|
|
|
|
|
|
|
typedef enum VkDescriptorType {
|
|
|
|
VK_DESCRIPTOR_TYPE_SAMPLER = 0,
|
|
|
|
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
|
|
|
|
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
|
|
|
|
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
|
|
|
|
VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
|
|
|
|
VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
|
|
|
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
|
|
|
|
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
|
|
|
|
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
|
|
|
|
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
|
|
|
|
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
|
|
|
|
VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
|
|
|
|
VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
|
|
|
|
VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
|
|
|
|
VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkDescriptorType;
|
|
|
|
|
|
|
|
typedef enum VkAttachmentLoadOp {
|
|
|
|
VK_ATTACHMENT_LOAD_OP_LOAD = 0,
|
|
|
|
VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
|
|
|
|
VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
|
|
|
|
VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
|
|
|
|
VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
|
|
|
|
VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
|
|
|
|
VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkAttachmentLoadOp;
|
|
|
|
|
|
|
|
typedef enum VkAttachmentStoreOp {
|
|
|
|
VK_ATTACHMENT_STORE_OP_STORE = 0,
|
|
|
|
VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
|
|
|
|
VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
|
|
|
|
VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
|
|
|
|
VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
|
|
|
|
VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkAttachmentStoreOp;
|
|
|
|
|
|
|
|
typedef enum VkPipelineBindPoint {
|
|
|
|
VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
|
|
|
|
VK_PIPELINE_BIND_POINT_COMPUTE = 1,
|
|
|
|
VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
|
|
|
VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
|
|
|
|
VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
|
|
|
|
VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkPipelineBindPoint;
|
|
|
|
|
|
|
|
typedef enum VkCommandBufferLevel {
|
|
|
|
VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
|
|
|
|
VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
|
|
|
|
VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
|
|
|
|
VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
|
|
|
|
VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
|
|
|
|
VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkCommandBufferLevel;
|
|
|
|
|
|
|
|
typedef enum VkIndexType {
|
|
|
|
VK_INDEX_TYPE_UINT16 = 0,
|
|
|
|
VK_INDEX_TYPE_UINT32 = 1,
|
|
|
|
VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
|
|
|
|
VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
|
|
|
|
VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
|
|
|
|
VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkIndexType;
|
|
|
|
|
|
|
|
typedef enum VkSubpassContents {
|
|
|
|
VK_SUBPASS_CONTENTS_INLINE = 0,
|
|
|
|
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
|
|
|
|
VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
|
|
|
|
VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
|
|
|
|
VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
|
|
|
|
VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkSubpassContents;
|
|
|
|
|
Change log for May 12, 2017 Vulkan 1.0.49 spec update:
* Bump API patch number and header version number to 49 for this update.
Github Issues:
* Modify reference page extraction script to make internal links to spec
anchors refer to the core specification instead of being dangling links
(public issue 455).
* Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
published StorageBuffer class (public issue 466).
* Both flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties return
ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
application providing a layer name that wasn't returned by
ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
* The specification for flink:VkApplicationInfo::apiVersion says that the
driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
pname:apiVersion specifies a non-supported version. That means that the
valid usage should not also state that, and so the VU statement is
removed. The VU had language about "`an effective substitute`" that
would have been lost, and so it was moved to the pname:apiVersion
description (public issue 488).
Internal Issues:
* Modify implicit validity generator script to assign asciidoc anchors to
all valid usage statements it generates, and reflow.py script to insert
Valid Usage ID (VUID) tags into the specification source files for
explicit valid usage statements. This has no semantic effects on the
specification, but will support the validation layer's detection of
valid usage violations and allow it to link into the corresponding part
of the specification (internal issue 583).
* Assign VUID tags to all explicit VU statements and document
the process and tag format in the style guide (internal issue 583).
* Clarify the rules of whether to structure new functionality as instance
extensions, device extensions, or both in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (internal issue 749).
* Require that SPIR-V run-time arrays are only used with the
code:BufferBlock decoration (internal issue 750).
* Fix implicit and explicit valid usage statements for
slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
* Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
section (internal issue 770).
* Clarify that disabling depth testing also disables depth writes in the
<<fragops-ds-state, Depth and Stencil Operations>> section (internal
issue 775).
* flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
imageLayout at the time the image is accessed. This was in the spec
text, but needed an associated valid usage statement.
* Note that only 32-bit atomic operations are supported in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Note that code:UniformConstant variables must not have initializers in
the <<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Add a new elink:VkObjectType enumeration to the core API, promoted from
elink:VkDebugObjectTypeEXT, since it is used for much more than just the
debug_report extension.
New Extensions:
* `VK_KHR_get_surface_capabilities2`
* `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
|
|
|
typedef enum VkObjectType {
|
|
|
|
VK_OBJECT_TYPE_UNKNOWN = 0,
|
|
|
|
VK_OBJECT_TYPE_INSTANCE = 1,
|
|
|
|
VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
|
|
|
|
VK_OBJECT_TYPE_DEVICE = 3,
|
|
|
|
VK_OBJECT_TYPE_QUEUE = 4,
|
|
|
|
VK_OBJECT_TYPE_SEMAPHORE = 5,
|
|
|
|
VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
|
|
|
|
VK_OBJECT_TYPE_FENCE = 7,
|
|
|
|
VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
|
|
|
|
VK_OBJECT_TYPE_BUFFER = 9,
|
|
|
|
VK_OBJECT_TYPE_IMAGE = 10,
|
|
|
|
VK_OBJECT_TYPE_EVENT = 11,
|
|
|
|
VK_OBJECT_TYPE_QUERY_POOL = 12,
|
|
|
|
VK_OBJECT_TYPE_BUFFER_VIEW = 13,
|
|
|
|
VK_OBJECT_TYPE_IMAGE_VIEW = 14,
|
|
|
|
VK_OBJECT_TYPE_SHADER_MODULE = 15,
|
|
|
|
VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
|
|
|
|
VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
|
|
|
|
VK_OBJECT_TYPE_RENDER_PASS = 18,
|
|
|
|
VK_OBJECT_TYPE_PIPELINE = 19,
|
|
|
|
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
|
|
|
|
VK_OBJECT_TYPE_SAMPLER = 21,
|
|
|
|
VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
|
|
|
|
VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
|
|
|
|
VK_OBJECT_TYPE_FRAMEBUFFER = 24,
|
|
|
|
VK_OBJECT_TYPE_COMMAND_POOL = 25,
|
|
|
|
VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
|
|
|
|
VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
|
|
|
|
VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
|
|
|
|
VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
|
|
|
|
VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
|
|
|
|
VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
|
|
|
|
VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
|
|
|
|
VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
|
Change log for May 12, 2017 Vulkan 1.0.49 spec update:
* Bump API patch number and header version number to 49 for this update.
Github Issues:
* Modify reference page extraction script to make internal links to spec
anchors refer to the core specification instead of being dangling links
(public issue 455).
* Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
published StorageBuffer class (public issue 466).
* Both flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties return
ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
application providing a layer name that wasn't returned by
ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
* The specification for flink:VkApplicationInfo::apiVersion says that the
driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
pname:apiVersion specifies a non-supported version. That means that the
valid usage should not also state that, and so the VU statement is
removed. The VU had language about "`an effective substitute`" that
would have been lost, and so it was moved to the pname:apiVersion
description (public issue 488).
Internal Issues:
* Modify implicit validity generator script to assign asciidoc anchors to
all valid usage statements it generates, and reflow.py script to insert
Valid Usage ID (VUID) tags into the specification source files for
explicit valid usage statements. This has no semantic effects on the
specification, but will support the validation layer's detection of
valid usage violations and allow it to link into the corresponding part
of the specification (internal issue 583).
* Assign VUID tags to all explicit VU statements and document
the process and tag format in the style guide (internal issue 583).
* Clarify the rules of whether to structure new functionality as instance
extensions, device extensions, or both in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (internal issue 749).
* Require that SPIR-V run-time arrays are only used with the
code:BufferBlock decoration (internal issue 750).
* Fix implicit and explicit valid usage statements for
slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
* Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
section (internal issue 770).
* Clarify that disabling depth testing also disables depth writes in the
<<fragops-ds-state, Depth and Stencil Operations>> section (internal
issue 775).
* flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
imageLayout at the time the image is accessed. This was in the spec
text, but needed an associated valid usage statement.
* Note that only 32-bit atomic operations are supported in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Note that code:UniformConstant variables must not have initializers in
the <<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Add a new elink:VkObjectType enumeration to the core API, promoted from
elink:VkDebugObjectTypeEXT, since it is used for much more than just the
debug_report extension.
New Extensions:
* `VK_KHR_get_surface_capabilities2`
* `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
|
|
|
VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
|
|
|
|
VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
|
|
|
|
VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
|
|
|
|
VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkObjectType;
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef VkFlags VkInstanceCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkFormatFeatureFlagBits {
|
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
|
|
|
|
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
|
|
|
|
VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
|
|
|
|
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
|
|
|
|
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
|
|
|
|
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
|
|
|
|
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
|
|
|
|
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
|
|
|
|
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
|
|
|
|
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
|
|
|
|
VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
|
|
|
|
VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
|
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
|
|
|
|
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
|
Change log for June 24, 2017 Vulkan 1.0.53 spec update:
* Bump API patch number and header version number to 53 for this update.
Github Issues:
Internal Issues:
* Clarify mappings of coordinates for mutable, compatible image views in
slink:VkImageViewCreateInfo (internal issue 815).
* Make ename:VK_BIND_SFR_BIT require a logical device with multiple
physical devices, so that standard sparse image block dimensions are
only required on systems that support multi-GPU (internal issue 835).
* Convert all files from use of // refBegin .. // refEnd comments to
delimit ref pages, to use of open blocks, and update style guide
accordingly (internal issue 839).
* Add valid usage for slink:VkWriteDescriptorSet when performing updates
to a ename:VK_STORAGE_IMAGE descriptor with layout
ename:VK_IMAGE_LAYOUT_GENERAL.
* Add a hack to the validity generator script to support an odd
interaction between flink:vkCmdFillBuffer and an extension (internal
issue 853).
* Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
which was already covered by implicit valid usage (internal issue 854).
* Update implicit validity generator script to properly handle the
pname:sType and pname:pNext members of "returnedonly" structures
(internal issue 874).
* Note that slink:VkApplicationInfo::pname:pApplicationName &
slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
implicit valid usage statements for flink:vkDestroyInstance.
* Added missing valid usage for flink:vkCmdWriteTimestamp to require a
timestamp query pool.
* Simplify and/or split "`non-atomic`" valid usage statements.
New Extensions:
* `VK_AMD_gpu_shader_int16`
* `VK_EXT_blend_operation_advanced`
* `VK_EXT_sampler_filter_minmax`
* `VK_NV_framebuffer_mixed_samples`
-----------------------------------------------------
Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release
combines both change sets.
-----------------------------------------------------
Change log for June 13, 2017 Vulkan 1.0.52 spec update:
* Bump API patch number and header version number to 52 for this update.
Github Issues:
Internal Issues:
* Clarify behavior when non-coherent memory has
<<memory-device-unmap-does-not-flush, not been flushed before being
unmapped>> (internal issue 819).
* Fix description of code:WorkgroupSize builtin to note it decorates an
object, not a variable (internal issue 836).
* Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
equations are rendered properly (internal issue 845).
* Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
section of the Procedures and Conventions document stating that any new
handle type requires a corresponding entry in the elink:VkObjectType
enumerated type (internal issue 856).
* Update style guide to use slink macro for Vulkan handle type names, and
define narrow conditions under which to use the *name and *text macros
instead of *link (internal issue 886).
* Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
appendix.
* Change the copyright on Vulkan specification asciidoc *source* files to
CC-BY 4.0, and update the proprietary Khronos copyright applied to the
generated *output* formats (internal issue 327). This enables broader
re-use and modification of the Vulkan specification sources, while not
affecting the Reciprocal IP License between Vulkan Adopters and Working
Group Members.
New Extensions:
* `VK_NV_fill_rectangle`
* `VK_NV_fragment_coverage_to_color`
2017-06-27 02:32:10 +00:00
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
|
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
|
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
|
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
|
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
|
|
|
|
VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
|
|
|
|
VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkFormatFeatureFlagBits;
|
|
|
|
typedef VkFlags VkFormatFeatureFlags;
|
|
|
|
|
|
|
|
typedef enum VkImageUsageFlagBits {
|
|
|
|
VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
|
|
|
|
VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
|
|
|
|
VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
|
|
|
|
VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
|
|
|
|
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
|
|
|
|
VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
|
|
|
|
VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
|
|
|
|
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkImageUsageFlagBits;
|
|
|
|
typedef VkFlags VkImageUsageFlags;
|
|
|
|
|
|
|
|
typedef enum VkImageCreateFlagBits {
|
|
|
|
VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
|
|
|
|
VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
|
|
|
|
VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
|
|
|
|
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
|
|
|
|
VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040,
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
|
|
|
|
VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
|
|
|
|
VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkImageCreateFlagBits;
|
|
|
|
typedef VkFlags VkImageCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkSampleCountFlagBits {
|
|
|
|
VK_SAMPLE_COUNT_1_BIT = 0x00000001,
|
|
|
|
VK_SAMPLE_COUNT_2_BIT = 0x00000002,
|
|
|
|
VK_SAMPLE_COUNT_4_BIT = 0x00000004,
|
|
|
|
VK_SAMPLE_COUNT_8_BIT = 0x00000008,
|
|
|
|
VK_SAMPLE_COUNT_16_BIT = 0x00000010,
|
|
|
|
VK_SAMPLE_COUNT_32_BIT = 0x00000020,
|
|
|
|
VK_SAMPLE_COUNT_64_BIT = 0x00000040,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkSampleCountFlagBits;
|
|
|
|
typedef VkFlags VkSampleCountFlags;
|
|
|
|
|
|
|
|
typedef enum VkQueueFlagBits {
|
|
|
|
VK_QUEUE_GRAPHICS_BIT = 0x00000001,
|
|
|
|
VK_QUEUE_COMPUTE_BIT = 0x00000002,
|
|
|
|
VK_QUEUE_TRANSFER_BIT = 0x00000004,
|
|
|
|
VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkQueueFlagBits;
|
|
|
|
typedef VkFlags VkQueueFlags;
|
|
|
|
|
|
|
|
typedef enum VkMemoryPropertyFlagBits {
|
|
|
|
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
|
|
|
|
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
|
|
|
|
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
|
|
|
|
VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
|
|
|
|
VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkMemoryPropertyFlagBits;
|
|
|
|
typedef VkFlags VkMemoryPropertyFlags;
|
|
|
|
|
|
|
|
typedef enum VkMemoryHeapFlagBits {
|
|
|
|
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkMemoryHeapFlagBits;
|
|
|
|
typedef VkFlags VkMemoryHeapFlags;
|
|
|
|
typedef VkFlags VkDeviceCreateFlags;
|
|
|
|
typedef VkFlags VkDeviceQueueCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkPipelineStageFlagBits {
|
|
|
|
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
|
|
|
|
VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
|
|
|
|
VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
|
|
|
|
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
|
|
|
|
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
|
|
|
|
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
|
|
|
|
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
|
|
|
|
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
|
|
|
|
VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
|
|
|
|
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
|
|
|
|
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
|
|
|
|
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
|
|
|
|
VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
|
|
|
|
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
|
|
|
|
VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
|
|
|
|
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
|
|
|
|
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
|
Change log for November 25, 2016 Vulkan 1.0.35 spec update:
* Bump API patch number and header version number to 35 for this update.
Github Issues:
* Document in the <<memory-device-hostaccess,Host Access>> section that
mapping and unmapping does not invalidate or flush the mapped memory
(public issues 27, 126).
* Redefine the entire <<synchronization>> chapter in terms of consistent
and well defined terminology, that's called out at the start of the
chapter. This terminology is applied equally to all synchronization
types, including subpass dependencies, submissions, and much of the
implicit ordering stuff dotted around the spec. Key terms are laid out
in the <<synchronization-dependencies,Execution and Memory
Dependencies>> section at the top of the rewritten chapter (public
issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
* Specify order of submission for batches in the
<<vkQueueSubmit,vkQueueSubmit>> and
<<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
* Add valid usage statements to each of the WSI extension sections
indicating that the WSI-specific structure parameters must be valid, and
remove automatically generated valid usage statements now covered by the
manual sections (public issue 383).
* Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
issue 390).
Internal Issues:
* Update +vk.xml+ to make previously explicit valid usage statements for
<<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
(internal issue 553).
* Add valid usage statement for slink:VkCreateImageInfo preventing
creation of 1D sparse images (internal issue 573).
* Fix Python scripts to always read/write files in utf-8 encoding, and a
logic error in reflib.py which could cause a fatal error for
malstructured asciidoc (internal issues 578, 586).
2016-11-26 10:33:44 +00:00
|
|
|
VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkPipelineStageFlagBits;
|
|
|
|
typedef VkFlags VkPipelineStageFlags;
|
|
|
|
typedef VkFlags VkMemoryMapFlags;
|
|
|
|
|
|
|
|
typedef enum VkImageAspectFlagBits {
|
|
|
|
VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
|
|
|
|
VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
|
|
|
|
VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
|
|
|
|
VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
|
|
|
|
VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
|
|
|
|
VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkImageAspectFlagBits;
|
|
|
|
typedef VkFlags VkImageAspectFlags;
|
|
|
|
|
|
|
|
typedef enum VkSparseImageFormatFlagBits {
|
|
|
|
VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
|
|
|
|
VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
|
|
|
|
VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkSparseImageFormatFlagBits;
|
|
|
|
typedef VkFlags VkSparseImageFormatFlags;
|
|
|
|
|
|
|
|
typedef enum VkSparseMemoryBindFlagBits {
|
|
|
|
VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkSparseMemoryBindFlagBits;
|
|
|
|
typedef VkFlags VkSparseMemoryBindFlags;
|
|
|
|
|
|
|
|
typedef enum VkFenceCreateFlagBits {
|
|
|
|
VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkFenceCreateFlagBits;
|
|
|
|
typedef VkFlags VkFenceCreateFlags;
|
|
|
|
typedef VkFlags VkSemaphoreCreateFlags;
|
|
|
|
typedef VkFlags VkEventCreateFlags;
|
|
|
|
typedef VkFlags VkQueryPoolCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkQueryPipelineStatisticFlagBits {
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
|
|
|
|
VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkQueryPipelineStatisticFlagBits;
|
|
|
|
typedef VkFlags VkQueryPipelineStatisticFlags;
|
|
|
|
|
|
|
|
typedef enum VkQueryResultFlagBits {
|
|
|
|
VK_QUERY_RESULT_64_BIT = 0x00000001,
|
|
|
|
VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
|
|
|
|
VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
|
|
|
|
VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkQueryResultFlagBits;
|
|
|
|
typedef VkFlags VkQueryResultFlags;
|
|
|
|
|
|
|
|
typedef enum VkBufferCreateFlagBits {
|
|
|
|
VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
|
|
|
|
VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
|
|
|
|
VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkBufferCreateFlagBits;
|
|
|
|
typedef VkFlags VkBufferCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkBufferUsageFlagBits {
|
|
|
|
VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
|
|
|
|
VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
|
|
|
|
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
|
|
|
|
VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
|
|
|
|
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
|
|
|
|
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
|
|
|
|
VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
|
|
|
|
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
|
|
|
|
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkBufferUsageFlagBits;
|
|
|
|
typedef VkFlags VkBufferUsageFlags;
|
|
|
|
typedef VkFlags VkBufferViewCreateFlags;
|
|
|
|
typedef VkFlags VkImageViewCreateFlags;
|
|
|
|
typedef VkFlags VkShaderModuleCreateFlags;
|
|
|
|
typedef VkFlags VkPipelineCacheCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkPipelineCreateFlagBits {
|
|
|
|
VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
|
|
|
|
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
|
|
|
|
VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008,
|
|
|
|
VK_PIPELINE_CREATE_DISPATCH_BASE_KHX = 0x00000010,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkPipelineCreateFlagBits;
|
|
|
|
typedef VkFlags VkPipelineCreateFlags;
|
|
|
|
typedef VkFlags VkPipelineShaderStageCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkShaderStageFlagBits {
|
|
|
|
VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
|
|
|
|
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
|
|
|
|
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
|
|
|
|
VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
|
|
|
|
VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
|
|
|
|
VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
|
Change log for March 4, 2016 Vulkan 1.0.5 spec update:
* Bump API patch number to 5 for this update.
Github Issues:
* Correctly describe slink:VkPhysicalDeviceProperties pname:deviceName
member as a string, not a pointer to a string. Also one typo fix for
"hetereogeneous" (public issue 4).
* Replace maynot: macro with may: not, and "may: or maynot:" with
"may:" (public issue 4).
* Clarify that redundantly setting the state of a fence or event has
no effect (public issue 4).
* Minor fixes to ref pages to track descriptions of memory bits that
changed in the core spec. Fix name of a member in the description of
sname:sname:VkPipelineMultisampleStateCreateInfo (public issues 8,
13).
* Remove redundant validity statement for
sname:VkGraphicsPipelineCreateInfo::pname:stageCount (public issue
14).
* Fix typos in chapters 7-9 (public issue 14).
* Clarify the example demonstrating the behavior of
code:OpMemoryBarrier in the
<<shaders-execution-memory-ordering,shader memory acces
ordering>> section (public issue 16).
* Specify that freeing mapped memory implicitly unmaps the memory in
the description of flink:vkFreeMemory (public issue 17).
* Forbid allocation callbacks from calling into the API in the
<<memory-allocation,memory allocation>> section (public issue
20).
* Add missing validity rules about size being greater than 0 and
offset being less than size of object. Fix
flink:VkMappedMemoryRange's misinterpretation of offset (public
issues 27, 31).
* Add validity rule disallowing overlapping source/destination
descriptors in flink:VkCopyDescriptorSet (public issue 32).
* Clarify that array and matrix stride has to be a multiple of the
base alignment of the array or matrix in the
<<interfaces-resources-layout,Offset and Stride Assignment>>
section (public issue 38).
* Correct parenthesis floor nesting error in equation for
<<textures-RGB-sexp,RGB to shared exponent conversion>>.
Clarify case of when exp' is forced to 0, avoiding log2(0) undefined
problem (public issue 40).
* Remove redundant statement from the code:FragDepth description in
the <<interfaces-builtin-variables,Built-In Variables>>
section (public issue 47).
* Define the clamping of the
<<textures-level-of-detail-operation,bias added to the scale
factor>> by linking to the slink:VkPhysicalDevice feature
pname:maxSamplerLodBias (public issue 64).
* Fix typo "optimal linear resources" and clarify the set of resources
<<features-limits-bufferImageGranularity,the
pname:bufferImageGranularity resource>> applies to (public issue
67).
* Replace 'descriptor accessed by a pipeline' language for
sname:VkDescriptorSetAllocateInfo with more precise phrasing about
binding a descriptor set before a command that invokes work using
that set (public issue 69).
* tstripadj.svg contained an Inkscape tag which caused Firefox and IE
11 to fail to render it, and was illegal SVG. Generating Plain SVG
from the Inkscape SVG source fixes this (public issue 70).
* Fix validity for sname:VkVertexInputBindingDescription and
sname:VkVertexInputAttributeDescription numbers (public issue 72).
Internal Issues:
* Clarify the meaning of
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in
elink:VkFormatFeatureFlagBits with respect to depth compare
(internal issue 107).
* Added a note explaining that ename:VK_QUEUE_TRANSFER_BIT may or may
not be reported for a queue family that already supports
ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT as the
former is a strict subset of the latter ones (internal issue 116).
* Add validity language for sname:VkDescriptorSetAllocateInfo about
exceeding the descriptor pool capacity (internal issue 140).
* Add ename:VK_INCOMPLETE success code for
flink:vkEnumeratePhysicalDevices query (internal issue 163).
Other Commits:
* Add the VK_NV_glsl_shader extension definitions to the API.
* Update GL_KHR_vulkan_glsl with 1) origin_upper_left as default 2)
specialization array constant semantics.
* Corrected/updated Data Format Specification date.
2016-03-03 13:06:18 +00:00
|
|
|
VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
|
2016-02-16 09:53:44 +00:00
|
|
|
VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkShaderStageFlagBits;
|
|
|
|
typedef VkFlags VkPipelineVertexInputStateCreateFlags;
|
|
|
|
typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
|
|
|
|
typedef VkFlags VkPipelineTessellationStateCreateFlags;
|
|
|
|
typedef VkFlags VkPipelineViewportStateCreateFlags;
|
|
|
|
typedef VkFlags VkPipelineRasterizationStateCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkCullModeFlagBits {
|
|
|
|
VK_CULL_MODE_NONE = 0,
|
|
|
|
VK_CULL_MODE_FRONT_BIT = 0x00000001,
|
|
|
|
VK_CULL_MODE_BACK_BIT = 0x00000002,
|
2016-02-28 10:53:20 +00:00
|
|
|
VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkCullModeFlagBits;
|
|
|
|
typedef VkFlags VkCullModeFlags;
|
|
|
|
typedef VkFlags VkPipelineMultisampleStateCreateFlags;
|
|
|
|
typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
|
|
|
|
typedef VkFlags VkPipelineColorBlendStateCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkColorComponentFlagBits {
|
|
|
|
VK_COLOR_COMPONENT_R_BIT = 0x00000001,
|
|
|
|
VK_COLOR_COMPONENT_G_BIT = 0x00000002,
|
|
|
|
VK_COLOR_COMPONENT_B_BIT = 0x00000004,
|
|
|
|
VK_COLOR_COMPONENT_A_BIT = 0x00000008,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkColorComponentFlagBits;
|
|
|
|
typedef VkFlags VkColorComponentFlags;
|
|
|
|
typedef VkFlags VkPipelineDynamicStateCreateFlags;
|
|
|
|
typedef VkFlags VkPipelineLayoutCreateFlags;
|
|
|
|
typedef VkFlags VkShaderStageFlags;
|
|
|
|
typedef VkFlags VkSamplerCreateFlags;
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
|
|
|
|
typedef enum VkDescriptorSetLayoutCreateFlagBits {
|
|
|
|
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
|
|
|
|
VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkDescriptorSetLayoutCreateFlagBits;
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef VkFlags VkDescriptorSetLayoutCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkDescriptorPoolCreateFlagBits {
|
|
|
|
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkDescriptorPoolCreateFlagBits;
|
|
|
|
typedef VkFlags VkDescriptorPoolCreateFlags;
|
|
|
|
typedef VkFlags VkDescriptorPoolResetFlags;
|
|
|
|
typedef VkFlags VkFramebufferCreateFlags;
|
|
|
|
typedef VkFlags VkRenderPassCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkAttachmentDescriptionFlagBits {
|
|
|
|
VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkAttachmentDescriptionFlagBits;
|
|
|
|
typedef VkFlags VkAttachmentDescriptionFlags;
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
|
|
|
|
typedef enum VkSubpassDescriptionFlagBits {
|
|
|
|
VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
|
|
|
|
VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
|
|
|
|
VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
|
|
|
} VkSubpassDescriptionFlagBits;
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef VkFlags VkSubpassDescriptionFlags;
|
|
|
|
|
|
|
|
typedef enum VkAccessFlagBits {
|
|
|
|
VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
|
|
|
|
VK_ACCESS_INDEX_READ_BIT = 0x00000002,
|
|
|
|
VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
|
|
|
|
VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
|
|
|
|
VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
|
|
|
|
VK_ACCESS_SHADER_READ_BIT = 0x00000020,
|
|
|
|
VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
|
|
|
|
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
|
|
|
|
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
|
|
|
|
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
|
|
|
|
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
|
|
|
|
VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
|
|
|
|
VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
|
|
|
|
VK_ACCESS_HOST_READ_BIT = 0x00002000,
|
|
|
|
VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
|
|
|
|
VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
|
|
|
|
VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
|
2016-12-11 04:59:58 +00:00
|
|
|
VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
|
|
|
|
VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
|
Change log for June 24, 2017 Vulkan 1.0.53 spec update:
* Bump API patch number and header version number to 53 for this update.
Github Issues:
Internal Issues:
* Clarify mappings of coordinates for mutable, compatible image views in
slink:VkImageViewCreateInfo (internal issue 815).
* Make ename:VK_BIND_SFR_BIT require a logical device with multiple
physical devices, so that standard sparse image block dimensions are
only required on systems that support multi-GPU (internal issue 835).
* Convert all files from use of // refBegin .. // refEnd comments to
delimit ref pages, to use of open blocks, and update style guide
accordingly (internal issue 839).
* Add valid usage for slink:VkWriteDescriptorSet when performing updates
to a ename:VK_STORAGE_IMAGE descriptor with layout
ename:VK_IMAGE_LAYOUT_GENERAL.
* Add a hack to the validity generator script to support an odd
interaction between flink:vkCmdFillBuffer and an extension (internal
issue 853).
* Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
which was already covered by implicit valid usage (internal issue 854).
* Update implicit validity generator script to properly handle the
pname:sType and pname:pNext members of "returnedonly" structures
(internal issue 874).
* Note that slink:VkApplicationInfo::pname:pApplicationName &
slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
implicit valid usage statements for flink:vkDestroyInstance.
* Added missing valid usage for flink:vkCmdWriteTimestamp to require a
timestamp query pool.
* Simplify and/or split "`non-atomic`" valid usage statements.
New Extensions:
* `VK_AMD_gpu_shader_int16`
* `VK_EXT_blend_operation_advanced`
* `VK_EXT_sampler_filter_minmax`
* `VK_NV_framebuffer_mixed_samples`
-----------------------------------------------------
Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release
combines both change sets.
-----------------------------------------------------
Change log for June 13, 2017 Vulkan 1.0.52 spec update:
* Bump API patch number and header version number to 52 for this update.
Github Issues:
Internal Issues:
* Clarify behavior when non-coherent memory has
<<memory-device-unmap-does-not-flush, not been flushed before being
unmapped>> (internal issue 819).
* Fix description of code:WorkgroupSize builtin to note it decorates an
object, not a variable (internal issue 836).
* Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
equations are rendered properly (internal issue 845).
* Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
section of the Procedures and Conventions document stating that any new
handle type requires a corresponding entry in the elink:VkObjectType
enumerated type (internal issue 856).
* Update style guide to use slink macro for Vulkan handle type names, and
define narrow conditions under which to use the *name and *text macros
instead of *link (internal issue 886).
* Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
appendix.
* Change the copyright on Vulkan specification asciidoc *source* files to
CC-BY 4.0, and update the proprietary Khronos copyright applied to the
generated *output* formats (internal issue 327). This enables broader
re-use and modification of the Vulkan specification sources, while not
affecting the Reciprocal IP License between Vulkan Adopters and Working
Group Members.
New Extensions:
* `VK_NV_fill_rectangle`
* `VK_NV_fragment_coverage_to_color`
2017-06-27 02:32:10 +00:00
|
|
|
VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkAccessFlagBits;
|
|
|
|
typedef VkFlags VkAccessFlags;
|
|
|
|
|
|
|
|
typedef enum VkDependencyFlagBits {
|
|
|
|
VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX = 0x00000002,
|
|
|
|
VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkDependencyFlagBits;
|
|
|
|
typedef VkFlags VkDependencyFlags;
|
|
|
|
|
|
|
|
typedef enum VkCommandPoolCreateFlagBits {
|
|
|
|
VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
|
|
|
|
VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkCommandPoolCreateFlagBits;
|
|
|
|
typedef VkFlags VkCommandPoolCreateFlags;
|
|
|
|
|
|
|
|
typedef enum VkCommandPoolResetFlagBits {
|
|
|
|
VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkCommandPoolResetFlagBits;
|
|
|
|
typedef VkFlags VkCommandPoolResetFlags;
|
|
|
|
|
|
|
|
typedef enum VkCommandBufferUsageFlagBits {
|
|
|
|
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
|
|
|
|
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
|
|
|
|
VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkCommandBufferUsageFlagBits;
|
|
|
|
typedef VkFlags VkCommandBufferUsageFlags;
|
|
|
|
|
|
|
|
typedef enum VkQueryControlFlagBits {
|
|
|
|
VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkQueryControlFlagBits;
|
|
|
|
typedef VkFlags VkQueryControlFlags;
|
|
|
|
|
|
|
|
typedef enum VkCommandBufferResetFlagBits {
|
|
|
|
VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkCommandBufferResetFlagBits;
|
|
|
|
typedef VkFlags VkCommandBufferResetFlags;
|
|
|
|
|
|
|
|
typedef enum VkStencilFaceFlagBits {
|
|
|
|
VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
|
|
|
|
VK_STENCIL_FACE_BACK_BIT = 0x00000002,
|
2016-02-28 10:53:20 +00:00
|
|
|
VK_STENCIL_FRONT_AND_BACK = 0x00000003,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkStencilFaceFlagBits;
|
|
|
|
typedef VkFlags VkStencilFaceFlags;
|
|
|
|
|
2017-08-01 00:22:11 +00:00
|
|
|
typedef struct VkApplicationInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
const char* pApplicationName;
|
|
|
|
uint32_t applicationVersion;
|
|
|
|
const char* pEngineName;
|
|
|
|
uint32_t engineVersion;
|
|
|
|
uint32_t apiVersion;
|
|
|
|
} VkApplicationInfo;
|
|
|
|
|
|
|
|
typedef struct VkInstanceCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkInstanceCreateFlags flags;
|
|
|
|
const VkApplicationInfo* pApplicationInfo;
|
|
|
|
uint32_t enabledLayerCount;
|
|
|
|
const char* const* ppEnabledLayerNames;
|
|
|
|
uint32_t enabledExtensionCount;
|
|
|
|
const char* const* ppEnabledExtensionNames;
|
|
|
|
} VkInstanceCreateInfo;
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
|
|
|
|
void* pUserData,
|
|
|
|
size_t size,
|
|
|
|
size_t alignment,
|
|
|
|
VkSystemAllocationScope allocationScope);
|
|
|
|
|
|
|
|
typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
|
|
|
|
void* pUserData,
|
|
|
|
void* pOriginal,
|
|
|
|
size_t size,
|
|
|
|
size_t alignment,
|
|
|
|
VkSystemAllocationScope allocationScope);
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
|
|
|
|
void* pUserData,
|
|
|
|
void* pMemory);
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
|
|
|
|
void* pUserData,
|
|
|
|
size_t size,
|
|
|
|
VkInternalAllocationType allocationType,
|
|
|
|
VkSystemAllocationScope allocationScope);
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
|
|
|
|
void* pUserData,
|
|
|
|
size_t size,
|
|
|
|
VkInternalAllocationType allocationType,
|
|
|
|
VkSystemAllocationScope allocationScope);
|
|
|
|
|
|
|
|
typedef struct VkAllocationCallbacks {
|
|
|
|
void* pUserData;
|
|
|
|
PFN_vkAllocationFunction pfnAllocation;
|
|
|
|
PFN_vkReallocationFunction pfnReallocation;
|
|
|
|
PFN_vkFreeFunction pfnFree;
|
|
|
|
PFN_vkInternalAllocationNotification pfnInternalAllocation;
|
|
|
|
PFN_vkInternalFreeNotification pfnInternalFree;
|
|
|
|
} VkAllocationCallbacks;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceFeatures {
|
|
|
|
VkBool32 robustBufferAccess;
|
|
|
|
VkBool32 fullDrawIndexUint32;
|
|
|
|
VkBool32 imageCubeArray;
|
|
|
|
VkBool32 independentBlend;
|
|
|
|
VkBool32 geometryShader;
|
|
|
|
VkBool32 tessellationShader;
|
|
|
|
VkBool32 sampleRateShading;
|
|
|
|
VkBool32 dualSrcBlend;
|
|
|
|
VkBool32 logicOp;
|
|
|
|
VkBool32 multiDrawIndirect;
|
|
|
|
VkBool32 drawIndirectFirstInstance;
|
|
|
|
VkBool32 depthClamp;
|
|
|
|
VkBool32 depthBiasClamp;
|
|
|
|
VkBool32 fillModeNonSolid;
|
|
|
|
VkBool32 depthBounds;
|
|
|
|
VkBool32 wideLines;
|
|
|
|
VkBool32 largePoints;
|
|
|
|
VkBool32 alphaToOne;
|
|
|
|
VkBool32 multiViewport;
|
|
|
|
VkBool32 samplerAnisotropy;
|
|
|
|
VkBool32 textureCompressionETC2;
|
|
|
|
VkBool32 textureCompressionASTC_LDR;
|
|
|
|
VkBool32 textureCompressionBC;
|
|
|
|
VkBool32 occlusionQueryPrecise;
|
|
|
|
VkBool32 pipelineStatisticsQuery;
|
|
|
|
VkBool32 vertexPipelineStoresAndAtomics;
|
|
|
|
VkBool32 fragmentStoresAndAtomics;
|
|
|
|
VkBool32 shaderTessellationAndGeometryPointSize;
|
|
|
|
VkBool32 shaderImageGatherExtended;
|
|
|
|
VkBool32 shaderStorageImageExtendedFormats;
|
|
|
|
VkBool32 shaderStorageImageMultisample;
|
|
|
|
VkBool32 shaderStorageImageReadWithoutFormat;
|
|
|
|
VkBool32 shaderStorageImageWriteWithoutFormat;
|
|
|
|
VkBool32 shaderUniformBufferArrayDynamicIndexing;
|
|
|
|
VkBool32 shaderSampledImageArrayDynamicIndexing;
|
|
|
|
VkBool32 shaderStorageBufferArrayDynamicIndexing;
|
|
|
|
VkBool32 shaderStorageImageArrayDynamicIndexing;
|
|
|
|
VkBool32 shaderClipDistance;
|
|
|
|
VkBool32 shaderCullDistance;
|
|
|
|
VkBool32 shaderFloat64;
|
|
|
|
VkBool32 shaderInt64;
|
|
|
|
VkBool32 shaderInt16;
|
|
|
|
VkBool32 shaderResourceResidency;
|
|
|
|
VkBool32 shaderResourceMinLod;
|
|
|
|
VkBool32 sparseBinding;
|
|
|
|
VkBool32 sparseResidencyBuffer;
|
|
|
|
VkBool32 sparseResidencyImage2D;
|
|
|
|
VkBool32 sparseResidencyImage3D;
|
|
|
|
VkBool32 sparseResidency2Samples;
|
|
|
|
VkBool32 sparseResidency4Samples;
|
|
|
|
VkBool32 sparseResidency8Samples;
|
|
|
|
VkBool32 sparseResidency16Samples;
|
|
|
|
VkBool32 sparseResidencyAliased;
|
|
|
|
VkBool32 variableMultisampleRate;
|
|
|
|
VkBool32 inheritedQueries;
|
|
|
|
} VkPhysicalDeviceFeatures;
|
|
|
|
|
|
|
|
typedef struct VkFormatProperties {
|
|
|
|
VkFormatFeatureFlags linearTilingFeatures;
|
|
|
|
VkFormatFeatureFlags optimalTilingFeatures;
|
|
|
|
VkFormatFeatureFlags bufferFeatures;
|
|
|
|
} VkFormatProperties;
|
|
|
|
|
|
|
|
typedef struct VkExtent3D {
|
|
|
|
uint32_t width;
|
|
|
|
uint32_t height;
|
|
|
|
uint32_t depth;
|
|
|
|
} VkExtent3D;
|
|
|
|
|
|
|
|
typedef struct VkImageFormatProperties {
|
|
|
|
VkExtent3D maxExtent;
|
|
|
|
uint32_t maxMipLevels;
|
|
|
|
uint32_t maxArrayLayers;
|
|
|
|
VkSampleCountFlags sampleCounts;
|
|
|
|
VkDeviceSize maxResourceSize;
|
|
|
|
} VkImageFormatProperties;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceLimits {
|
|
|
|
uint32_t maxImageDimension1D;
|
|
|
|
uint32_t maxImageDimension2D;
|
|
|
|
uint32_t maxImageDimension3D;
|
|
|
|
uint32_t maxImageDimensionCube;
|
|
|
|
uint32_t maxImageArrayLayers;
|
|
|
|
uint32_t maxTexelBufferElements;
|
|
|
|
uint32_t maxUniformBufferRange;
|
|
|
|
uint32_t maxStorageBufferRange;
|
|
|
|
uint32_t maxPushConstantsSize;
|
|
|
|
uint32_t maxMemoryAllocationCount;
|
|
|
|
uint32_t maxSamplerAllocationCount;
|
|
|
|
VkDeviceSize bufferImageGranularity;
|
|
|
|
VkDeviceSize sparseAddressSpaceSize;
|
|
|
|
uint32_t maxBoundDescriptorSets;
|
|
|
|
uint32_t maxPerStageDescriptorSamplers;
|
|
|
|
uint32_t maxPerStageDescriptorUniformBuffers;
|
|
|
|
uint32_t maxPerStageDescriptorStorageBuffers;
|
|
|
|
uint32_t maxPerStageDescriptorSampledImages;
|
|
|
|
uint32_t maxPerStageDescriptorStorageImages;
|
|
|
|
uint32_t maxPerStageDescriptorInputAttachments;
|
|
|
|
uint32_t maxPerStageResources;
|
|
|
|
uint32_t maxDescriptorSetSamplers;
|
|
|
|
uint32_t maxDescriptorSetUniformBuffers;
|
|
|
|
uint32_t maxDescriptorSetUniformBuffersDynamic;
|
|
|
|
uint32_t maxDescriptorSetStorageBuffers;
|
|
|
|
uint32_t maxDescriptorSetStorageBuffersDynamic;
|
|
|
|
uint32_t maxDescriptorSetSampledImages;
|
|
|
|
uint32_t maxDescriptorSetStorageImages;
|
|
|
|
uint32_t maxDescriptorSetInputAttachments;
|
|
|
|
uint32_t maxVertexInputAttributes;
|
|
|
|
uint32_t maxVertexInputBindings;
|
|
|
|
uint32_t maxVertexInputAttributeOffset;
|
|
|
|
uint32_t maxVertexInputBindingStride;
|
|
|
|
uint32_t maxVertexOutputComponents;
|
|
|
|
uint32_t maxTessellationGenerationLevel;
|
|
|
|
uint32_t maxTessellationPatchSize;
|
|
|
|
uint32_t maxTessellationControlPerVertexInputComponents;
|
|
|
|
uint32_t maxTessellationControlPerVertexOutputComponents;
|
|
|
|
uint32_t maxTessellationControlPerPatchOutputComponents;
|
|
|
|
uint32_t maxTessellationControlTotalOutputComponents;
|
|
|
|
uint32_t maxTessellationEvaluationInputComponents;
|
|
|
|
uint32_t maxTessellationEvaluationOutputComponents;
|
|
|
|
uint32_t maxGeometryShaderInvocations;
|
|
|
|
uint32_t maxGeometryInputComponents;
|
|
|
|
uint32_t maxGeometryOutputComponents;
|
|
|
|
uint32_t maxGeometryOutputVertices;
|
|
|
|
uint32_t maxGeometryTotalOutputComponents;
|
|
|
|
uint32_t maxFragmentInputComponents;
|
|
|
|
uint32_t maxFragmentOutputAttachments;
|
|
|
|
uint32_t maxFragmentDualSrcAttachments;
|
|
|
|
uint32_t maxFragmentCombinedOutputResources;
|
|
|
|
uint32_t maxComputeSharedMemorySize;
|
|
|
|
uint32_t maxComputeWorkGroupCount[3];
|
|
|
|
uint32_t maxComputeWorkGroupInvocations;
|
|
|
|
uint32_t maxComputeWorkGroupSize[3];
|
|
|
|
uint32_t subPixelPrecisionBits;
|
|
|
|
uint32_t subTexelPrecisionBits;
|
|
|
|
uint32_t mipmapPrecisionBits;
|
|
|
|
uint32_t maxDrawIndexedIndexValue;
|
|
|
|
uint32_t maxDrawIndirectCount;
|
|
|
|
float maxSamplerLodBias;
|
|
|
|
float maxSamplerAnisotropy;
|
|
|
|
uint32_t maxViewports;
|
|
|
|
uint32_t maxViewportDimensions[2];
|
|
|
|
float viewportBoundsRange[2];
|
|
|
|
uint32_t viewportSubPixelBits;
|
|
|
|
size_t minMemoryMapAlignment;
|
|
|
|
VkDeviceSize minTexelBufferOffsetAlignment;
|
|
|
|
VkDeviceSize minUniformBufferOffsetAlignment;
|
|
|
|
VkDeviceSize minStorageBufferOffsetAlignment;
|
|
|
|
int32_t minTexelOffset;
|
|
|
|
uint32_t maxTexelOffset;
|
|
|
|
int32_t minTexelGatherOffset;
|
|
|
|
uint32_t maxTexelGatherOffset;
|
|
|
|
float minInterpolationOffset;
|
|
|
|
float maxInterpolationOffset;
|
|
|
|
uint32_t subPixelInterpolationOffsetBits;
|
|
|
|
uint32_t maxFramebufferWidth;
|
|
|
|
uint32_t maxFramebufferHeight;
|
|
|
|
uint32_t maxFramebufferLayers;
|
|
|
|
VkSampleCountFlags framebufferColorSampleCounts;
|
|
|
|
VkSampleCountFlags framebufferDepthSampleCounts;
|
|
|
|
VkSampleCountFlags framebufferStencilSampleCounts;
|
|
|
|
VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
|
|
|
|
uint32_t maxColorAttachments;
|
|
|
|
VkSampleCountFlags sampledImageColorSampleCounts;
|
|
|
|
VkSampleCountFlags sampledImageIntegerSampleCounts;
|
|
|
|
VkSampleCountFlags sampledImageDepthSampleCounts;
|
|
|
|
VkSampleCountFlags sampledImageStencilSampleCounts;
|
|
|
|
VkSampleCountFlags storageImageSampleCounts;
|
|
|
|
uint32_t maxSampleMaskWords;
|
|
|
|
VkBool32 timestampComputeAndGraphics;
|
|
|
|
float timestampPeriod;
|
|
|
|
uint32_t maxClipDistances;
|
|
|
|
uint32_t maxCullDistances;
|
|
|
|
uint32_t maxCombinedClipAndCullDistances;
|
|
|
|
uint32_t discreteQueuePriorities;
|
|
|
|
float pointSizeRange[2];
|
|
|
|
float lineWidthRange[2];
|
|
|
|
float pointSizeGranularity;
|
|
|
|
float lineWidthGranularity;
|
|
|
|
VkBool32 strictLines;
|
|
|
|
VkBool32 standardSampleLocations;
|
|
|
|
VkDeviceSize optimalBufferCopyOffsetAlignment;
|
|
|
|
VkDeviceSize optimalBufferCopyRowPitchAlignment;
|
|
|
|
VkDeviceSize nonCoherentAtomSize;
|
|
|
|
} VkPhysicalDeviceLimits;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceSparseProperties {
|
|
|
|
VkBool32 residencyStandard2DBlockShape;
|
|
|
|
VkBool32 residencyStandard2DMultisampleBlockShape;
|
|
|
|
VkBool32 residencyStandard3DBlockShape;
|
|
|
|
VkBool32 residencyAlignedMipSize;
|
|
|
|
VkBool32 residencyNonResidentStrict;
|
|
|
|
} VkPhysicalDeviceSparseProperties;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceProperties {
|
|
|
|
uint32_t apiVersion;
|
|
|
|
uint32_t driverVersion;
|
|
|
|
uint32_t vendorID;
|
|
|
|
uint32_t deviceID;
|
|
|
|
VkPhysicalDeviceType deviceType;
|
|
|
|
char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
|
|
|
|
uint8_t pipelineCacheUUID[VK_UUID_SIZE];
|
|
|
|
VkPhysicalDeviceLimits limits;
|
|
|
|
VkPhysicalDeviceSparseProperties sparseProperties;
|
|
|
|
} VkPhysicalDeviceProperties;
|
|
|
|
|
|
|
|
typedef struct VkQueueFamilyProperties {
|
|
|
|
VkQueueFlags queueFlags;
|
|
|
|
uint32_t queueCount;
|
|
|
|
uint32_t timestampValidBits;
|
|
|
|
VkExtent3D minImageTransferGranularity;
|
|
|
|
} VkQueueFamilyProperties;
|
|
|
|
|
|
|
|
typedef struct VkMemoryType {
|
|
|
|
VkMemoryPropertyFlags propertyFlags;
|
|
|
|
uint32_t heapIndex;
|
|
|
|
} VkMemoryType;
|
|
|
|
|
|
|
|
typedef struct VkMemoryHeap {
|
|
|
|
VkDeviceSize size;
|
|
|
|
VkMemoryHeapFlags flags;
|
|
|
|
} VkMemoryHeap;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceMemoryProperties {
|
|
|
|
uint32_t memoryTypeCount;
|
|
|
|
VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
|
|
|
|
uint32_t memoryHeapCount;
|
|
|
|
VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
|
|
|
|
} VkPhysicalDeviceMemoryProperties;
|
|
|
|
|
2017-08-01 00:22:11 +00:00
|
|
|
typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef struct VkDeviceQueueCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDeviceQueueCreateFlags flags;
|
|
|
|
uint32_t queueFamilyIndex;
|
|
|
|
uint32_t queueCount;
|
|
|
|
const float* pQueuePriorities;
|
|
|
|
} VkDeviceQueueCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkDeviceCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDeviceCreateFlags flags;
|
|
|
|
uint32_t queueCreateInfoCount;
|
|
|
|
const VkDeviceQueueCreateInfo* pQueueCreateInfos;
|
|
|
|
uint32_t enabledLayerCount;
|
|
|
|
const char* const* ppEnabledLayerNames;
|
|
|
|
uint32_t enabledExtensionCount;
|
|
|
|
const char* const* ppEnabledExtensionNames;
|
|
|
|
const VkPhysicalDeviceFeatures* pEnabledFeatures;
|
|
|
|
} VkDeviceCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkExtensionProperties {
|
|
|
|
char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
|
|
|
|
uint32_t specVersion;
|
|
|
|
} VkExtensionProperties;
|
|
|
|
|
|
|
|
typedef struct VkLayerProperties {
|
|
|
|
char layerName[VK_MAX_EXTENSION_NAME_SIZE];
|
|
|
|
uint32_t specVersion;
|
|
|
|
uint32_t implementationVersion;
|
|
|
|
char description[VK_MAX_DESCRIPTION_SIZE];
|
|
|
|
} VkLayerProperties;
|
|
|
|
|
|
|
|
typedef struct VkSubmitInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t waitSemaphoreCount;
|
|
|
|
const VkSemaphore* pWaitSemaphores;
|
|
|
|
const VkPipelineStageFlags* pWaitDstStageMask;
|
|
|
|
uint32_t commandBufferCount;
|
|
|
|
const VkCommandBuffer* pCommandBuffers;
|
|
|
|
uint32_t signalSemaphoreCount;
|
|
|
|
const VkSemaphore* pSignalSemaphores;
|
|
|
|
} VkSubmitInfo;
|
|
|
|
|
|
|
|
typedef struct VkMemoryAllocateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDeviceSize allocationSize;
|
|
|
|
uint32_t memoryTypeIndex;
|
|
|
|
} VkMemoryAllocateInfo;
|
|
|
|
|
|
|
|
typedef struct VkMappedMemoryRange {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDeviceMemory memory;
|
|
|
|
VkDeviceSize offset;
|
|
|
|
VkDeviceSize size;
|
|
|
|
} VkMappedMemoryRange;
|
|
|
|
|
|
|
|
typedef struct VkMemoryRequirements {
|
|
|
|
VkDeviceSize size;
|
|
|
|
VkDeviceSize alignment;
|
|
|
|
uint32_t memoryTypeBits;
|
|
|
|
} VkMemoryRequirements;
|
|
|
|
|
|
|
|
typedef struct VkSparseImageFormatProperties {
|
|
|
|
VkImageAspectFlags aspectMask;
|
|
|
|
VkExtent3D imageGranularity;
|
|
|
|
VkSparseImageFormatFlags flags;
|
|
|
|
} VkSparseImageFormatProperties;
|
|
|
|
|
|
|
|
typedef struct VkSparseImageMemoryRequirements {
|
|
|
|
VkSparseImageFormatProperties formatProperties;
|
|
|
|
uint32_t imageMipTailFirstLod;
|
|
|
|
VkDeviceSize imageMipTailSize;
|
|
|
|
VkDeviceSize imageMipTailOffset;
|
|
|
|
VkDeviceSize imageMipTailStride;
|
|
|
|
} VkSparseImageMemoryRequirements;
|
|
|
|
|
|
|
|
typedef struct VkSparseMemoryBind {
|
|
|
|
VkDeviceSize resourceOffset;
|
|
|
|
VkDeviceSize size;
|
|
|
|
VkDeviceMemory memory;
|
|
|
|
VkDeviceSize memoryOffset;
|
|
|
|
VkSparseMemoryBindFlags flags;
|
|
|
|
} VkSparseMemoryBind;
|
|
|
|
|
|
|
|
typedef struct VkSparseBufferMemoryBindInfo {
|
|
|
|
VkBuffer buffer;
|
|
|
|
uint32_t bindCount;
|
|
|
|
const VkSparseMemoryBind* pBinds;
|
|
|
|
} VkSparseBufferMemoryBindInfo;
|
|
|
|
|
|
|
|
typedef struct VkSparseImageOpaqueMemoryBindInfo {
|
|
|
|
VkImage image;
|
|
|
|
uint32_t bindCount;
|
|
|
|
const VkSparseMemoryBind* pBinds;
|
|
|
|
} VkSparseImageOpaqueMemoryBindInfo;
|
|
|
|
|
|
|
|
typedef struct VkImageSubresource {
|
|
|
|
VkImageAspectFlags aspectMask;
|
|
|
|
uint32_t mipLevel;
|
|
|
|
uint32_t arrayLayer;
|
|
|
|
} VkImageSubresource;
|
|
|
|
|
|
|
|
typedef struct VkOffset3D {
|
|
|
|
int32_t x;
|
|
|
|
int32_t y;
|
|
|
|
int32_t z;
|
|
|
|
} VkOffset3D;
|
|
|
|
|
|
|
|
typedef struct VkSparseImageMemoryBind {
|
|
|
|
VkImageSubresource subresource;
|
|
|
|
VkOffset3D offset;
|
|
|
|
VkExtent3D extent;
|
|
|
|
VkDeviceMemory memory;
|
|
|
|
VkDeviceSize memoryOffset;
|
|
|
|
VkSparseMemoryBindFlags flags;
|
|
|
|
} VkSparseImageMemoryBind;
|
|
|
|
|
|
|
|
typedef struct VkSparseImageMemoryBindInfo {
|
|
|
|
VkImage image;
|
|
|
|
uint32_t bindCount;
|
|
|
|
const VkSparseImageMemoryBind* pBinds;
|
|
|
|
} VkSparseImageMemoryBindInfo;
|
|
|
|
|
|
|
|
typedef struct VkBindSparseInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t waitSemaphoreCount;
|
|
|
|
const VkSemaphore* pWaitSemaphores;
|
|
|
|
uint32_t bufferBindCount;
|
|
|
|
const VkSparseBufferMemoryBindInfo* pBufferBinds;
|
|
|
|
uint32_t imageOpaqueBindCount;
|
|
|
|
const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
|
|
|
|
uint32_t imageBindCount;
|
|
|
|
const VkSparseImageMemoryBindInfo* pImageBinds;
|
|
|
|
uint32_t signalSemaphoreCount;
|
|
|
|
const VkSemaphore* pSignalSemaphores;
|
|
|
|
} VkBindSparseInfo;
|
|
|
|
|
|
|
|
typedef struct VkFenceCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkFenceCreateFlags flags;
|
|
|
|
} VkFenceCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkSemaphoreCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSemaphoreCreateFlags flags;
|
|
|
|
} VkSemaphoreCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkEventCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkEventCreateFlags flags;
|
|
|
|
} VkEventCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkQueryPoolCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkQueryPoolCreateFlags flags;
|
|
|
|
VkQueryType queryType;
|
|
|
|
uint32_t queryCount;
|
|
|
|
VkQueryPipelineStatisticFlags pipelineStatistics;
|
|
|
|
} VkQueryPoolCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkBufferCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBufferCreateFlags flags;
|
|
|
|
VkDeviceSize size;
|
|
|
|
VkBufferUsageFlags usage;
|
|
|
|
VkSharingMode sharingMode;
|
|
|
|
uint32_t queueFamilyIndexCount;
|
|
|
|
const uint32_t* pQueueFamilyIndices;
|
|
|
|
} VkBufferCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkBufferViewCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBufferViewCreateFlags flags;
|
|
|
|
VkBuffer buffer;
|
|
|
|
VkFormat format;
|
|
|
|
VkDeviceSize offset;
|
|
|
|
VkDeviceSize range;
|
|
|
|
} VkBufferViewCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkImageCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImageCreateFlags flags;
|
|
|
|
VkImageType imageType;
|
|
|
|
VkFormat format;
|
|
|
|
VkExtent3D extent;
|
|
|
|
uint32_t mipLevels;
|
|
|
|
uint32_t arrayLayers;
|
|
|
|
VkSampleCountFlagBits samples;
|
|
|
|
VkImageTiling tiling;
|
|
|
|
VkImageUsageFlags usage;
|
|
|
|
VkSharingMode sharingMode;
|
|
|
|
uint32_t queueFamilyIndexCount;
|
|
|
|
const uint32_t* pQueueFamilyIndices;
|
|
|
|
VkImageLayout initialLayout;
|
|
|
|
} VkImageCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkSubresourceLayout {
|
|
|
|
VkDeviceSize offset;
|
|
|
|
VkDeviceSize size;
|
|
|
|
VkDeviceSize rowPitch;
|
|
|
|
VkDeviceSize arrayPitch;
|
|
|
|
VkDeviceSize depthPitch;
|
|
|
|
} VkSubresourceLayout;
|
|
|
|
|
|
|
|
typedef struct VkComponentMapping {
|
|
|
|
VkComponentSwizzle r;
|
|
|
|
VkComponentSwizzle g;
|
|
|
|
VkComponentSwizzle b;
|
|
|
|
VkComponentSwizzle a;
|
|
|
|
} VkComponentMapping;
|
|
|
|
|
|
|
|
typedef struct VkImageSubresourceRange {
|
|
|
|
VkImageAspectFlags aspectMask;
|
|
|
|
uint32_t baseMipLevel;
|
|
|
|
uint32_t levelCount;
|
|
|
|
uint32_t baseArrayLayer;
|
|
|
|
uint32_t layerCount;
|
|
|
|
} VkImageSubresourceRange;
|
|
|
|
|
|
|
|
typedef struct VkImageViewCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImageViewCreateFlags flags;
|
|
|
|
VkImage image;
|
|
|
|
VkImageViewType viewType;
|
|
|
|
VkFormat format;
|
|
|
|
VkComponentMapping components;
|
|
|
|
VkImageSubresourceRange subresourceRange;
|
|
|
|
} VkImageViewCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkShaderModuleCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkShaderModuleCreateFlags flags;
|
|
|
|
size_t codeSize;
|
|
|
|
const uint32_t* pCode;
|
|
|
|
} VkShaderModuleCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkPipelineCacheCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineCacheCreateFlags flags;
|
|
|
|
size_t initialDataSize;
|
|
|
|
const void* pInitialData;
|
|
|
|
} VkPipelineCacheCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkSpecializationMapEntry {
|
|
|
|
uint32_t constantID;
|
|
|
|
uint32_t offset;
|
|
|
|
size_t size;
|
|
|
|
} VkSpecializationMapEntry;
|
|
|
|
|
|
|
|
typedef struct VkSpecializationInfo {
|
|
|
|
uint32_t mapEntryCount;
|
|
|
|
const VkSpecializationMapEntry* pMapEntries;
|
|
|
|
size_t dataSize;
|
|
|
|
const void* pData;
|
|
|
|
} VkSpecializationInfo;
|
|
|
|
|
|
|
|
typedef struct VkPipelineShaderStageCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineShaderStageCreateFlags flags;
|
|
|
|
VkShaderStageFlagBits stage;
|
|
|
|
VkShaderModule module;
|
|
|
|
const char* pName;
|
|
|
|
const VkSpecializationInfo* pSpecializationInfo;
|
|
|
|
} VkPipelineShaderStageCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkVertexInputBindingDescription {
|
|
|
|
uint32_t binding;
|
|
|
|
uint32_t stride;
|
|
|
|
VkVertexInputRate inputRate;
|
|
|
|
} VkVertexInputBindingDescription;
|
|
|
|
|
|
|
|
typedef struct VkVertexInputAttributeDescription {
|
|
|
|
uint32_t location;
|
|
|
|
uint32_t binding;
|
|
|
|
VkFormat format;
|
|
|
|
uint32_t offset;
|
|
|
|
} VkVertexInputAttributeDescription;
|
|
|
|
|
|
|
|
typedef struct VkPipelineVertexInputStateCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineVertexInputStateCreateFlags flags;
|
|
|
|
uint32_t vertexBindingDescriptionCount;
|
|
|
|
const VkVertexInputBindingDescription* pVertexBindingDescriptions;
|
|
|
|
uint32_t vertexAttributeDescriptionCount;
|
|
|
|
const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
|
|
|
|
} VkPipelineVertexInputStateCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkPipelineInputAssemblyStateCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineInputAssemblyStateCreateFlags flags;
|
|
|
|
VkPrimitiveTopology topology;
|
|
|
|
VkBool32 primitiveRestartEnable;
|
|
|
|
} VkPipelineInputAssemblyStateCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkPipelineTessellationStateCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineTessellationStateCreateFlags flags;
|
|
|
|
uint32_t patchControlPoints;
|
|
|
|
} VkPipelineTessellationStateCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkViewport {
|
|
|
|
float x;
|
|
|
|
float y;
|
|
|
|
float width;
|
|
|
|
float height;
|
|
|
|
float minDepth;
|
|
|
|
float maxDepth;
|
|
|
|
} VkViewport;
|
|
|
|
|
|
|
|
typedef struct VkOffset2D {
|
|
|
|
int32_t x;
|
|
|
|
int32_t y;
|
|
|
|
} VkOffset2D;
|
|
|
|
|
|
|
|
typedef struct VkExtent2D {
|
|
|
|
uint32_t width;
|
|
|
|
uint32_t height;
|
|
|
|
} VkExtent2D;
|
|
|
|
|
|
|
|
typedef struct VkRect2D {
|
|
|
|
VkOffset2D offset;
|
|
|
|
VkExtent2D extent;
|
|
|
|
} VkRect2D;
|
|
|
|
|
|
|
|
typedef struct VkPipelineViewportStateCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineViewportStateCreateFlags flags;
|
|
|
|
uint32_t viewportCount;
|
|
|
|
const VkViewport* pViewports;
|
|
|
|
uint32_t scissorCount;
|
|
|
|
const VkRect2D* pScissors;
|
|
|
|
} VkPipelineViewportStateCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkPipelineRasterizationStateCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineRasterizationStateCreateFlags flags;
|
|
|
|
VkBool32 depthClampEnable;
|
|
|
|
VkBool32 rasterizerDiscardEnable;
|
|
|
|
VkPolygonMode polygonMode;
|
|
|
|
VkCullModeFlags cullMode;
|
|
|
|
VkFrontFace frontFace;
|
|
|
|
VkBool32 depthBiasEnable;
|
|
|
|
float depthBiasConstantFactor;
|
|
|
|
float depthBiasClamp;
|
|
|
|
float depthBiasSlopeFactor;
|
|
|
|
float lineWidth;
|
|
|
|
} VkPipelineRasterizationStateCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkPipelineMultisampleStateCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineMultisampleStateCreateFlags flags;
|
|
|
|
VkSampleCountFlagBits rasterizationSamples;
|
|
|
|
VkBool32 sampleShadingEnable;
|
|
|
|
float minSampleShading;
|
|
|
|
const VkSampleMask* pSampleMask;
|
|
|
|
VkBool32 alphaToCoverageEnable;
|
|
|
|
VkBool32 alphaToOneEnable;
|
|
|
|
} VkPipelineMultisampleStateCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkStencilOpState {
|
|
|
|
VkStencilOp failOp;
|
|
|
|
VkStencilOp passOp;
|
|
|
|
VkStencilOp depthFailOp;
|
|
|
|
VkCompareOp compareOp;
|
|
|
|
uint32_t compareMask;
|
|
|
|
uint32_t writeMask;
|
|
|
|
uint32_t reference;
|
|
|
|
} VkStencilOpState;
|
|
|
|
|
|
|
|
typedef struct VkPipelineDepthStencilStateCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineDepthStencilStateCreateFlags flags;
|
|
|
|
VkBool32 depthTestEnable;
|
|
|
|
VkBool32 depthWriteEnable;
|
|
|
|
VkCompareOp depthCompareOp;
|
|
|
|
VkBool32 depthBoundsTestEnable;
|
|
|
|
VkBool32 stencilTestEnable;
|
|
|
|
VkStencilOpState front;
|
|
|
|
VkStencilOpState back;
|
|
|
|
float minDepthBounds;
|
|
|
|
float maxDepthBounds;
|
|
|
|
} VkPipelineDepthStencilStateCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkPipelineColorBlendAttachmentState {
|
|
|
|
VkBool32 blendEnable;
|
|
|
|
VkBlendFactor srcColorBlendFactor;
|
|
|
|
VkBlendFactor dstColorBlendFactor;
|
|
|
|
VkBlendOp colorBlendOp;
|
|
|
|
VkBlendFactor srcAlphaBlendFactor;
|
|
|
|
VkBlendFactor dstAlphaBlendFactor;
|
|
|
|
VkBlendOp alphaBlendOp;
|
|
|
|
VkColorComponentFlags colorWriteMask;
|
|
|
|
} VkPipelineColorBlendAttachmentState;
|
|
|
|
|
|
|
|
typedef struct VkPipelineColorBlendStateCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineColorBlendStateCreateFlags flags;
|
|
|
|
VkBool32 logicOpEnable;
|
|
|
|
VkLogicOp logicOp;
|
|
|
|
uint32_t attachmentCount;
|
|
|
|
const VkPipelineColorBlendAttachmentState* pAttachments;
|
|
|
|
float blendConstants[4];
|
|
|
|
} VkPipelineColorBlendStateCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkPipelineDynamicStateCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineDynamicStateCreateFlags flags;
|
|
|
|
uint32_t dynamicStateCount;
|
|
|
|
const VkDynamicState* pDynamicStates;
|
|
|
|
} VkPipelineDynamicStateCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkGraphicsPipelineCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineCreateFlags flags;
|
|
|
|
uint32_t stageCount;
|
|
|
|
const VkPipelineShaderStageCreateInfo* pStages;
|
|
|
|
const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
|
|
|
|
const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
|
|
|
|
const VkPipelineTessellationStateCreateInfo* pTessellationState;
|
|
|
|
const VkPipelineViewportStateCreateInfo* pViewportState;
|
|
|
|
const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
|
|
|
|
const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
|
|
|
|
const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
|
|
|
|
const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
|
|
|
|
const VkPipelineDynamicStateCreateInfo* pDynamicState;
|
|
|
|
VkPipelineLayout layout;
|
|
|
|
VkRenderPass renderPass;
|
|
|
|
uint32_t subpass;
|
|
|
|
VkPipeline basePipelineHandle;
|
|
|
|
int32_t basePipelineIndex;
|
|
|
|
} VkGraphicsPipelineCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkComputePipelineCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineCreateFlags flags;
|
|
|
|
VkPipelineShaderStageCreateInfo stage;
|
|
|
|
VkPipelineLayout layout;
|
|
|
|
VkPipeline basePipelineHandle;
|
|
|
|
int32_t basePipelineIndex;
|
|
|
|
} VkComputePipelineCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkPushConstantRange {
|
|
|
|
VkShaderStageFlags stageFlags;
|
|
|
|
uint32_t offset;
|
|
|
|
uint32_t size;
|
|
|
|
} VkPushConstantRange;
|
|
|
|
|
|
|
|
typedef struct VkPipelineLayoutCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineLayoutCreateFlags flags;
|
|
|
|
uint32_t setLayoutCount;
|
|
|
|
const VkDescriptorSetLayout* pSetLayouts;
|
|
|
|
uint32_t pushConstantRangeCount;
|
|
|
|
const VkPushConstantRange* pPushConstantRanges;
|
|
|
|
} VkPipelineLayoutCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkSamplerCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSamplerCreateFlags flags;
|
|
|
|
VkFilter magFilter;
|
|
|
|
VkFilter minFilter;
|
|
|
|
VkSamplerMipmapMode mipmapMode;
|
|
|
|
VkSamplerAddressMode addressModeU;
|
|
|
|
VkSamplerAddressMode addressModeV;
|
|
|
|
VkSamplerAddressMode addressModeW;
|
|
|
|
float mipLodBias;
|
|
|
|
VkBool32 anisotropyEnable;
|
|
|
|
float maxAnisotropy;
|
|
|
|
VkBool32 compareEnable;
|
|
|
|
VkCompareOp compareOp;
|
|
|
|
float minLod;
|
|
|
|
float maxLod;
|
|
|
|
VkBorderColor borderColor;
|
|
|
|
VkBool32 unnormalizedCoordinates;
|
|
|
|
} VkSamplerCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkDescriptorSetLayoutBinding {
|
|
|
|
uint32_t binding;
|
|
|
|
VkDescriptorType descriptorType;
|
|
|
|
uint32_t descriptorCount;
|
|
|
|
VkShaderStageFlags stageFlags;
|
|
|
|
const VkSampler* pImmutableSamplers;
|
|
|
|
} VkDescriptorSetLayoutBinding;
|
|
|
|
|
|
|
|
typedef struct VkDescriptorSetLayoutCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDescriptorSetLayoutCreateFlags flags;
|
|
|
|
uint32_t bindingCount;
|
|
|
|
const VkDescriptorSetLayoutBinding* pBindings;
|
|
|
|
} VkDescriptorSetLayoutCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkDescriptorPoolSize {
|
|
|
|
VkDescriptorType type;
|
|
|
|
uint32_t descriptorCount;
|
|
|
|
} VkDescriptorPoolSize;
|
|
|
|
|
|
|
|
typedef struct VkDescriptorPoolCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDescriptorPoolCreateFlags flags;
|
|
|
|
uint32_t maxSets;
|
|
|
|
uint32_t poolSizeCount;
|
|
|
|
const VkDescriptorPoolSize* pPoolSizes;
|
|
|
|
} VkDescriptorPoolCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkDescriptorSetAllocateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDescriptorPool descriptorPool;
|
|
|
|
uint32_t descriptorSetCount;
|
|
|
|
const VkDescriptorSetLayout* pSetLayouts;
|
|
|
|
} VkDescriptorSetAllocateInfo;
|
|
|
|
|
|
|
|
typedef struct VkDescriptorImageInfo {
|
|
|
|
VkSampler sampler;
|
|
|
|
VkImageView imageView;
|
|
|
|
VkImageLayout imageLayout;
|
|
|
|
} VkDescriptorImageInfo;
|
|
|
|
|
|
|
|
typedef struct VkDescriptorBufferInfo {
|
|
|
|
VkBuffer buffer;
|
|
|
|
VkDeviceSize offset;
|
|
|
|
VkDeviceSize range;
|
|
|
|
} VkDescriptorBufferInfo;
|
|
|
|
|
|
|
|
typedef struct VkWriteDescriptorSet {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDescriptorSet dstSet;
|
|
|
|
uint32_t dstBinding;
|
|
|
|
uint32_t dstArrayElement;
|
|
|
|
uint32_t descriptorCount;
|
|
|
|
VkDescriptorType descriptorType;
|
|
|
|
const VkDescriptorImageInfo* pImageInfo;
|
|
|
|
const VkDescriptorBufferInfo* pBufferInfo;
|
|
|
|
const VkBufferView* pTexelBufferView;
|
|
|
|
} VkWriteDescriptorSet;
|
|
|
|
|
|
|
|
typedef struct VkCopyDescriptorSet {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDescriptorSet srcSet;
|
|
|
|
uint32_t srcBinding;
|
|
|
|
uint32_t srcArrayElement;
|
|
|
|
VkDescriptorSet dstSet;
|
|
|
|
uint32_t dstBinding;
|
|
|
|
uint32_t dstArrayElement;
|
|
|
|
uint32_t descriptorCount;
|
|
|
|
} VkCopyDescriptorSet;
|
|
|
|
|
|
|
|
typedef struct VkFramebufferCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkFramebufferCreateFlags flags;
|
|
|
|
VkRenderPass renderPass;
|
|
|
|
uint32_t attachmentCount;
|
|
|
|
const VkImageView* pAttachments;
|
|
|
|
uint32_t width;
|
|
|
|
uint32_t height;
|
|
|
|
uint32_t layers;
|
|
|
|
} VkFramebufferCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkAttachmentDescription {
|
|
|
|
VkAttachmentDescriptionFlags flags;
|
|
|
|
VkFormat format;
|
|
|
|
VkSampleCountFlagBits samples;
|
|
|
|
VkAttachmentLoadOp loadOp;
|
|
|
|
VkAttachmentStoreOp storeOp;
|
|
|
|
VkAttachmentLoadOp stencilLoadOp;
|
|
|
|
VkAttachmentStoreOp stencilStoreOp;
|
|
|
|
VkImageLayout initialLayout;
|
|
|
|
VkImageLayout finalLayout;
|
|
|
|
} VkAttachmentDescription;
|
|
|
|
|
|
|
|
typedef struct VkAttachmentReference {
|
|
|
|
uint32_t attachment;
|
|
|
|
VkImageLayout layout;
|
|
|
|
} VkAttachmentReference;
|
|
|
|
|
|
|
|
typedef struct VkSubpassDescription {
|
|
|
|
VkSubpassDescriptionFlags flags;
|
|
|
|
VkPipelineBindPoint pipelineBindPoint;
|
|
|
|
uint32_t inputAttachmentCount;
|
|
|
|
const VkAttachmentReference* pInputAttachments;
|
|
|
|
uint32_t colorAttachmentCount;
|
|
|
|
const VkAttachmentReference* pColorAttachments;
|
|
|
|
const VkAttachmentReference* pResolveAttachments;
|
|
|
|
const VkAttachmentReference* pDepthStencilAttachment;
|
|
|
|
uint32_t preserveAttachmentCount;
|
|
|
|
const uint32_t* pPreserveAttachments;
|
|
|
|
} VkSubpassDescription;
|
|
|
|
|
|
|
|
typedef struct VkSubpassDependency {
|
|
|
|
uint32_t srcSubpass;
|
|
|
|
uint32_t dstSubpass;
|
|
|
|
VkPipelineStageFlags srcStageMask;
|
|
|
|
VkPipelineStageFlags dstStageMask;
|
|
|
|
VkAccessFlags srcAccessMask;
|
|
|
|
VkAccessFlags dstAccessMask;
|
|
|
|
VkDependencyFlags dependencyFlags;
|
|
|
|
} VkSubpassDependency;
|
|
|
|
|
|
|
|
typedef struct VkRenderPassCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkRenderPassCreateFlags flags;
|
|
|
|
uint32_t attachmentCount;
|
|
|
|
const VkAttachmentDescription* pAttachments;
|
|
|
|
uint32_t subpassCount;
|
|
|
|
const VkSubpassDescription* pSubpasses;
|
|
|
|
uint32_t dependencyCount;
|
|
|
|
const VkSubpassDependency* pDependencies;
|
|
|
|
} VkRenderPassCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkCommandPoolCreateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkCommandPoolCreateFlags flags;
|
|
|
|
uint32_t queueFamilyIndex;
|
|
|
|
} VkCommandPoolCreateInfo;
|
|
|
|
|
|
|
|
typedef struct VkCommandBufferAllocateInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkCommandPool commandPool;
|
|
|
|
VkCommandBufferLevel level;
|
|
|
|
uint32_t commandBufferCount;
|
|
|
|
} VkCommandBufferAllocateInfo;
|
|
|
|
|
|
|
|
typedef struct VkCommandBufferInheritanceInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkRenderPass renderPass;
|
|
|
|
uint32_t subpass;
|
|
|
|
VkFramebuffer framebuffer;
|
|
|
|
VkBool32 occlusionQueryEnable;
|
|
|
|
VkQueryControlFlags queryFlags;
|
|
|
|
VkQueryPipelineStatisticFlags pipelineStatistics;
|
|
|
|
} VkCommandBufferInheritanceInfo;
|
|
|
|
|
|
|
|
typedef struct VkCommandBufferBeginInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkCommandBufferUsageFlags flags;
|
|
|
|
const VkCommandBufferInheritanceInfo* pInheritanceInfo;
|
|
|
|
} VkCommandBufferBeginInfo;
|
|
|
|
|
|
|
|
typedef struct VkBufferCopy {
|
|
|
|
VkDeviceSize srcOffset;
|
|
|
|
VkDeviceSize dstOffset;
|
|
|
|
VkDeviceSize size;
|
|
|
|
} VkBufferCopy;
|
|
|
|
|
|
|
|
typedef struct VkImageSubresourceLayers {
|
|
|
|
VkImageAspectFlags aspectMask;
|
|
|
|
uint32_t mipLevel;
|
|
|
|
uint32_t baseArrayLayer;
|
|
|
|
uint32_t layerCount;
|
|
|
|
} VkImageSubresourceLayers;
|
|
|
|
|
|
|
|
typedef struct VkImageCopy {
|
|
|
|
VkImageSubresourceLayers srcSubresource;
|
|
|
|
VkOffset3D srcOffset;
|
|
|
|
VkImageSubresourceLayers dstSubresource;
|
|
|
|
VkOffset3D dstOffset;
|
|
|
|
VkExtent3D extent;
|
|
|
|
} VkImageCopy;
|
|
|
|
|
|
|
|
typedef struct VkImageBlit {
|
|
|
|
VkImageSubresourceLayers srcSubresource;
|
|
|
|
VkOffset3D srcOffsets[2];
|
|
|
|
VkImageSubresourceLayers dstSubresource;
|
|
|
|
VkOffset3D dstOffsets[2];
|
|
|
|
} VkImageBlit;
|
|
|
|
|
|
|
|
typedef struct VkBufferImageCopy {
|
|
|
|
VkDeviceSize bufferOffset;
|
|
|
|
uint32_t bufferRowLength;
|
|
|
|
uint32_t bufferImageHeight;
|
|
|
|
VkImageSubresourceLayers imageSubresource;
|
|
|
|
VkOffset3D imageOffset;
|
|
|
|
VkExtent3D imageExtent;
|
|
|
|
} VkBufferImageCopy;
|
|
|
|
|
|
|
|
typedef union VkClearColorValue {
|
|
|
|
float float32[4];
|
|
|
|
int32_t int32[4];
|
|
|
|
uint32_t uint32[4];
|
|
|
|
} VkClearColorValue;
|
|
|
|
|
|
|
|
typedef struct VkClearDepthStencilValue {
|
|
|
|
float depth;
|
|
|
|
uint32_t stencil;
|
|
|
|
} VkClearDepthStencilValue;
|
|
|
|
|
|
|
|
typedef union VkClearValue {
|
|
|
|
VkClearColorValue color;
|
|
|
|
VkClearDepthStencilValue depthStencil;
|
|
|
|
} VkClearValue;
|
|
|
|
|
|
|
|
typedef struct VkClearAttachment {
|
|
|
|
VkImageAspectFlags aspectMask;
|
|
|
|
uint32_t colorAttachment;
|
|
|
|
VkClearValue clearValue;
|
|
|
|
} VkClearAttachment;
|
|
|
|
|
|
|
|
typedef struct VkClearRect {
|
|
|
|
VkRect2D rect;
|
|
|
|
uint32_t baseArrayLayer;
|
|
|
|
uint32_t layerCount;
|
|
|
|
} VkClearRect;
|
|
|
|
|
|
|
|
typedef struct VkImageResolve {
|
|
|
|
VkImageSubresourceLayers srcSubresource;
|
|
|
|
VkOffset3D srcOffset;
|
|
|
|
VkImageSubresourceLayers dstSubresource;
|
|
|
|
VkOffset3D dstOffset;
|
|
|
|
VkExtent3D extent;
|
|
|
|
} VkImageResolve;
|
|
|
|
|
|
|
|
typedef struct VkMemoryBarrier {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkAccessFlags srcAccessMask;
|
|
|
|
VkAccessFlags dstAccessMask;
|
|
|
|
} VkMemoryBarrier;
|
|
|
|
|
|
|
|
typedef struct VkBufferMemoryBarrier {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkAccessFlags srcAccessMask;
|
|
|
|
VkAccessFlags dstAccessMask;
|
|
|
|
uint32_t srcQueueFamilyIndex;
|
|
|
|
uint32_t dstQueueFamilyIndex;
|
|
|
|
VkBuffer buffer;
|
|
|
|
VkDeviceSize offset;
|
|
|
|
VkDeviceSize size;
|
|
|
|
} VkBufferMemoryBarrier;
|
|
|
|
|
|
|
|
typedef struct VkImageMemoryBarrier {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkAccessFlags srcAccessMask;
|
|
|
|
VkAccessFlags dstAccessMask;
|
|
|
|
VkImageLayout oldLayout;
|
|
|
|
VkImageLayout newLayout;
|
|
|
|
uint32_t srcQueueFamilyIndex;
|
|
|
|
uint32_t dstQueueFamilyIndex;
|
|
|
|
VkImage image;
|
|
|
|
VkImageSubresourceRange subresourceRange;
|
|
|
|
} VkImageMemoryBarrier;
|
|
|
|
|
|
|
|
typedef struct VkRenderPassBeginInfo {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkRenderPass renderPass;
|
|
|
|
VkFramebuffer framebuffer;
|
|
|
|
VkRect2D renderArea;
|
|
|
|
uint32_t clearValueCount;
|
|
|
|
const VkClearValue* pClearValues;
|
|
|
|
} VkRenderPassBeginInfo;
|
|
|
|
|
|
|
|
typedef struct VkDispatchIndirectCommand {
|
|
|
|
uint32_t x;
|
|
|
|
uint32_t y;
|
|
|
|
uint32_t z;
|
|
|
|
} VkDispatchIndirectCommand;
|
|
|
|
|
|
|
|
typedef struct VkDrawIndexedIndirectCommand {
|
|
|
|
uint32_t indexCount;
|
|
|
|
uint32_t instanceCount;
|
|
|
|
uint32_t firstIndex;
|
|
|
|
int32_t vertexOffset;
|
|
|
|
uint32_t firstInstance;
|
|
|
|
} VkDrawIndexedIndirectCommand;
|
|
|
|
|
|
|
|
typedef struct VkDrawIndirectCommand {
|
|
|
|
uint32_t vertexCount;
|
|
|
|
uint32_t instanceCount;
|
|
|
|
uint32_t firstVertex;
|
|
|
|
uint32_t firstInstance;
|
|
|
|
} VkDrawIndirectCommand;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
|
|
|
|
typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
|
|
|
|
typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
|
2016-07-01 02:34:54 +00:00
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
|
|
|
|
const VkInstanceCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkInstance* pInstance);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
|
|
|
|
VkInstance instance,
|
|
|
|
uint32_t* pPhysicalDeviceCount,
|
|
|
|
VkPhysicalDevice* pPhysicalDevices);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkPhysicalDeviceFeatures* pFeatures);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkFormat format,
|
|
|
|
VkFormatProperties* pFormatProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkFormat format,
|
|
|
|
VkImageType type,
|
|
|
|
VkImageTiling tiling,
|
|
|
|
VkImageUsageFlags usage,
|
|
|
|
VkImageCreateFlags flags,
|
|
|
|
VkImageFormatProperties* pImageFormatProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkPhysicalDeviceProperties* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t* pQueueFamilyPropertyCount,
|
|
|
|
VkQueueFamilyProperties* pQueueFamilyProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkPhysicalDeviceMemoryProperties* pMemoryProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
|
|
|
|
VkInstance instance,
|
|
|
|
const char* pName);
|
|
|
|
|
|
|
|
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
|
|
|
|
VkDevice device,
|
|
|
|
const char* pName);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
const VkDeviceCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkDevice* pDevice);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
|
|
|
|
VkDevice device,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
|
|
|
|
const char* pLayerName,
|
|
|
|
uint32_t* pPropertyCount,
|
|
|
|
VkExtensionProperties* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
const char* pLayerName,
|
|
|
|
uint32_t* pPropertyCount,
|
|
|
|
VkExtensionProperties* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
|
|
|
|
uint32_t* pPropertyCount,
|
|
|
|
VkLayerProperties* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t* pPropertyCount,
|
|
|
|
VkLayerProperties* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t queueFamilyIndex,
|
|
|
|
uint32_t queueIndex,
|
|
|
|
VkQueue* pQueue);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
|
|
|
|
VkQueue queue,
|
|
|
|
uint32_t submitCount,
|
|
|
|
const VkSubmitInfo* pSubmits,
|
|
|
|
VkFence fence);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
|
|
|
|
VkQueue queue);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
|
|
|
|
VkDevice device);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
|
|
|
|
VkDevice device,
|
|
|
|
const VkMemoryAllocateInfo* pAllocateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkDeviceMemory* pMemory);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
|
|
|
|
VkDevice device,
|
|
|
|
VkDeviceMemory memory,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
|
|
|
|
VkDevice device,
|
|
|
|
VkDeviceMemory memory,
|
|
|
|
VkDeviceSize offset,
|
|
|
|
VkDeviceSize size,
|
|
|
|
VkMemoryMapFlags flags,
|
|
|
|
void** ppData);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
|
|
|
|
VkDevice device,
|
|
|
|
VkDeviceMemory memory);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t memoryRangeCount,
|
|
|
|
const VkMappedMemoryRange* pMemoryRanges);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t memoryRangeCount,
|
|
|
|
const VkMappedMemoryRange* pMemoryRanges);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
|
|
|
|
VkDevice device,
|
|
|
|
VkDeviceMemory memory,
|
|
|
|
VkDeviceSize* pCommittedMemoryInBytes);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
|
|
|
|
VkDevice device,
|
|
|
|
VkBuffer buffer,
|
|
|
|
VkDeviceMemory memory,
|
|
|
|
VkDeviceSize memoryOffset);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
|
|
|
|
VkDevice device,
|
|
|
|
VkImage image,
|
|
|
|
VkDeviceMemory memory,
|
|
|
|
VkDeviceSize memoryOffset);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
|
|
|
|
VkDevice device,
|
|
|
|
VkBuffer buffer,
|
|
|
|
VkMemoryRequirements* pMemoryRequirements);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
|
|
|
|
VkDevice device,
|
|
|
|
VkImage image,
|
|
|
|
VkMemoryRequirements* pMemoryRequirements);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
|
|
|
|
VkDevice device,
|
|
|
|
VkImage image,
|
|
|
|
uint32_t* pSparseMemoryRequirementCount,
|
|
|
|
VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkFormat format,
|
|
|
|
VkImageType type,
|
|
|
|
VkSampleCountFlagBits samples,
|
|
|
|
VkImageUsageFlags usage,
|
|
|
|
VkImageTiling tiling,
|
|
|
|
uint32_t* pPropertyCount,
|
|
|
|
VkSparseImageFormatProperties* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
|
|
|
|
VkQueue queue,
|
|
|
|
uint32_t bindInfoCount,
|
|
|
|
const VkBindSparseInfo* pBindInfo,
|
|
|
|
VkFence fence);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
|
|
|
|
VkDevice device,
|
|
|
|
const VkFenceCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkFence* pFence);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
|
|
|
|
VkDevice device,
|
|
|
|
VkFence fence,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t fenceCount,
|
|
|
|
const VkFence* pFences);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
|
|
|
|
VkDevice device,
|
|
|
|
VkFence fence);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t fenceCount,
|
|
|
|
const VkFence* pFences,
|
|
|
|
VkBool32 waitAll,
|
|
|
|
uint64_t timeout);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
|
|
|
|
VkDevice device,
|
|
|
|
const VkSemaphoreCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSemaphore* pSemaphore);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
|
|
|
|
VkDevice device,
|
|
|
|
VkSemaphore semaphore,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
|
|
|
|
VkDevice device,
|
|
|
|
const VkEventCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkEvent* pEvent);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
|
|
|
|
VkDevice device,
|
|
|
|
VkEvent event,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
|
|
|
|
VkDevice device,
|
|
|
|
VkEvent event);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
|
|
|
|
VkDevice device,
|
|
|
|
VkEvent event);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
|
|
|
|
VkDevice device,
|
|
|
|
VkEvent event);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
|
|
|
|
VkDevice device,
|
|
|
|
const VkQueryPoolCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkQueryPool* pQueryPool);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
|
|
|
|
VkDevice device,
|
|
|
|
VkQueryPool queryPool,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
|
|
|
|
VkDevice device,
|
|
|
|
VkQueryPool queryPool,
|
|
|
|
uint32_t firstQuery,
|
|
|
|
uint32_t queryCount,
|
|
|
|
size_t dataSize,
|
|
|
|
void* pData,
|
|
|
|
VkDeviceSize stride,
|
|
|
|
VkQueryResultFlags flags);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
|
|
|
|
VkDevice device,
|
|
|
|
const VkBufferCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkBuffer* pBuffer);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
|
|
|
|
VkDevice device,
|
|
|
|
VkBuffer buffer,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
|
|
|
|
VkDevice device,
|
|
|
|
const VkBufferViewCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkBufferView* pView);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
|
|
|
|
VkDevice device,
|
|
|
|
VkBufferView bufferView,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
|
|
|
|
VkDevice device,
|
|
|
|
const VkImageCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkImage* pImage);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
|
|
|
|
VkDevice device,
|
|
|
|
VkImage image,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
|
|
|
|
VkDevice device,
|
|
|
|
VkImage image,
|
|
|
|
const VkImageSubresource* pSubresource,
|
|
|
|
VkSubresourceLayout* pLayout);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
|
|
|
|
VkDevice device,
|
|
|
|
const VkImageViewCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkImageView* pView);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
|
|
|
|
VkDevice device,
|
|
|
|
VkImageView imageView,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
|
|
|
|
VkDevice device,
|
|
|
|
const VkShaderModuleCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkShaderModule* pShaderModule);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
|
|
|
|
VkDevice device,
|
|
|
|
VkShaderModule shaderModule,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
|
|
|
|
VkDevice device,
|
|
|
|
const VkPipelineCacheCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkPipelineCache* pPipelineCache);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
|
|
|
|
VkDevice device,
|
|
|
|
VkPipelineCache pipelineCache,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
|
|
|
|
VkDevice device,
|
|
|
|
VkPipelineCache pipelineCache,
|
|
|
|
size_t* pDataSize,
|
|
|
|
void* pData);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
|
|
|
|
VkDevice device,
|
|
|
|
VkPipelineCache dstCache,
|
|
|
|
uint32_t srcCacheCount,
|
|
|
|
const VkPipelineCache* pSrcCaches);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
|
|
|
|
VkDevice device,
|
|
|
|
VkPipelineCache pipelineCache,
|
|
|
|
uint32_t createInfoCount,
|
|
|
|
const VkGraphicsPipelineCreateInfo* pCreateInfos,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkPipeline* pPipelines);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
|
|
|
|
VkDevice device,
|
|
|
|
VkPipelineCache pipelineCache,
|
|
|
|
uint32_t createInfoCount,
|
|
|
|
const VkComputePipelineCreateInfo* pCreateInfos,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkPipeline* pPipelines);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
|
|
|
|
VkDevice device,
|
|
|
|
VkPipeline pipeline,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
|
|
|
|
VkDevice device,
|
|
|
|
const VkPipelineLayoutCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkPipelineLayout* pPipelineLayout);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
|
|
|
|
VkDevice device,
|
|
|
|
VkPipelineLayout pipelineLayout,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
|
|
|
|
VkDevice device,
|
|
|
|
const VkSamplerCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSampler* pSampler);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
|
|
|
|
VkDevice device,
|
|
|
|
VkSampler sampler,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
|
|
|
|
VkDevice device,
|
|
|
|
const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkDescriptorSetLayout* pSetLayout);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
|
|
|
|
VkDevice device,
|
|
|
|
VkDescriptorSetLayout descriptorSetLayout,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
|
|
|
|
VkDevice device,
|
|
|
|
const VkDescriptorPoolCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkDescriptorPool* pDescriptorPool);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
|
|
|
|
VkDevice device,
|
|
|
|
VkDescriptorPool descriptorPool,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
|
|
|
|
VkDevice device,
|
|
|
|
VkDescriptorPool descriptorPool,
|
|
|
|
VkDescriptorPoolResetFlags flags);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
|
|
|
|
VkDevice device,
|
|
|
|
const VkDescriptorSetAllocateInfo* pAllocateInfo,
|
|
|
|
VkDescriptorSet* pDescriptorSets);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
|
|
|
|
VkDevice device,
|
|
|
|
VkDescriptorPool descriptorPool,
|
|
|
|
uint32_t descriptorSetCount,
|
|
|
|
const VkDescriptorSet* pDescriptorSets);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t descriptorWriteCount,
|
|
|
|
const VkWriteDescriptorSet* pDescriptorWrites,
|
|
|
|
uint32_t descriptorCopyCount,
|
|
|
|
const VkCopyDescriptorSet* pDescriptorCopies);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
|
|
|
|
VkDevice device,
|
|
|
|
const VkFramebufferCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkFramebuffer* pFramebuffer);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
|
|
|
|
VkDevice device,
|
|
|
|
VkFramebuffer framebuffer,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
|
|
|
|
VkDevice device,
|
|
|
|
const VkRenderPassCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkRenderPass* pRenderPass);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
|
|
|
|
VkDevice device,
|
|
|
|
VkRenderPass renderPass,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
|
|
|
|
VkDevice device,
|
|
|
|
VkRenderPass renderPass,
|
|
|
|
VkExtent2D* pGranularity);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
|
|
|
|
VkDevice device,
|
|
|
|
const VkCommandPoolCreateInfo* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkCommandPool* pCommandPool);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
|
|
|
|
VkDevice device,
|
|
|
|
VkCommandPool commandPool,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
|
|
|
|
VkDevice device,
|
|
|
|
VkCommandPool commandPool,
|
|
|
|
VkCommandPoolResetFlags flags);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
|
|
|
|
VkDevice device,
|
|
|
|
const VkCommandBufferAllocateInfo* pAllocateInfo,
|
|
|
|
VkCommandBuffer* pCommandBuffers);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
|
|
|
|
VkDevice device,
|
|
|
|
VkCommandPool commandPool,
|
|
|
|
uint32_t commandBufferCount,
|
|
|
|
const VkCommandBuffer* pCommandBuffers);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
const VkCommandBufferBeginInfo* pBeginInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
|
|
|
|
VkCommandBuffer commandBuffer);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkCommandBufferResetFlags flags);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkPipelineBindPoint pipelineBindPoint,
|
|
|
|
VkPipeline pipeline);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t firstViewport,
|
|
|
|
uint32_t viewportCount,
|
|
|
|
const VkViewport* pViewports);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t firstScissor,
|
|
|
|
uint32_t scissorCount,
|
|
|
|
const VkRect2D* pScissors);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
float lineWidth);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
float depthBiasConstantFactor,
|
|
|
|
float depthBiasClamp,
|
|
|
|
float depthBiasSlopeFactor);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
const float blendConstants[4]);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
float minDepthBounds,
|
|
|
|
float maxDepthBounds);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkStencilFaceFlags faceMask,
|
|
|
|
uint32_t compareMask);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkStencilFaceFlags faceMask,
|
|
|
|
uint32_t writeMask);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkStencilFaceFlags faceMask,
|
|
|
|
uint32_t reference);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkPipelineBindPoint pipelineBindPoint,
|
|
|
|
VkPipelineLayout layout,
|
|
|
|
uint32_t firstSet,
|
|
|
|
uint32_t descriptorSetCount,
|
|
|
|
const VkDescriptorSet* pDescriptorSets,
|
|
|
|
uint32_t dynamicOffsetCount,
|
|
|
|
const uint32_t* pDynamicOffsets);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer buffer,
|
|
|
|
VkDeviceSize offset,
|
|
|
|
VkIndexType indexType);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t firstBinding,
|
|
|
|
uint32_t bindingCount,
|
|
|
|
const VkBuffer* pBuffers,
|
|
|
|
const VkDeviceSize* pOffsets);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t vertexCount,
|
|
|
|
uint32_t instanceCount,
|
|
|
|
uint32_t firstVertex,
|
|
|
|
uint32_t firstInstance);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t indexCount,
|
|
|
|
uint32_t instanceCount,
|
|
|
|
uint32_t firstIndex,
|
|
|
|
int32_t vertexOffset,
|
|
|
|
uint32_t firstInstance);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer buffer,
|
|
|
|
VkDeviceSize offset,
|
|
|
|
uint32_t drawCount,
|
|
|
|
uint32_t stride);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer buffer,
|
|
|
|
VkDeviceSize offset,
|
|
|
|
uint32_t drawCount,
|
|
|
|
uint32_t stride);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
|
|
|
|
VkCommandBuffer commandBuffer,
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
uint32_t groupCountX,
|
|
|
|
uint32_t groupCountY,
|
|
|
|
uint32_t groupCountZ);
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer buffer,
|
|
|
|
VkDeviceSize offset);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer srcBuffer,
|
|
|
|
VkBuffer dstBuffer,
|
|
|
|
uint32_t regionCount,
|
|
|
|
const VkBufferCopy* pRegions);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkImage srcImage,
|
|
|
|
VkImageLayout srcImageLayout,
|
|
|
|
VkImage dstImage,
|
|
|
|
VkImageLayout dstImageLayout,
|
|
|
|
uint32_t regionCount,
|
|
|
|
const VkImageCopy* pRegions);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkImage srcImage,
|
|
|
|
VkImageLayout srcImageLayout,
|
|
|
|
VkImage dstImage,
|
|
|
|
VkImageLayout dstImageLayout,
|
|
|
|
uint32_t regionCount,
|
|
|
|
const VkImageBlit* pRegions,
|
|
|
|
VkFilter filter);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer srcBuffer,
|
|
|
|
VkImage dstImage,
|
|
|
|
VkImageLayout dstImageLayout,
|
|
|
|
uint32_t regionCount,
|
|
|
|
const VkBufferImageCopy* pRegions);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkImage srcImage,
|
|
|
|
VkImageLayout srcImageLayout,
|
|
|
|
VkBuffer dstBuffer,
|
|
|
|
uint32_t regionCount,
|
|
|
|
const VkBufferImageCopy* pRegions);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer dstBuffer,
|
|
|
|
VkDeviceSize dstOffset,
|
|
|
|
VkDeviceSize dataSize,
|
2016-07-01 02:34:54 +00:00
|
|
|
const void* pData);
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer dstBuffer,
|
|
|
|
VkDeviceSize dstOffset,
|
|
|
|
VkDeviceSize size,
|
|
|
|
uint32_t data);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkImage image,
|
|
|
|
VkImageLayout imageLayout,
|
|
|
|
const VkClearColorValue* pColor,
|
|
|
|
uint32_t rangeCount,
|
|
|
|
const VkImageSubresourceRange* pRanges);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkImage image,
|
|
|
|
VkImageLayout imageLayout,
|
|
|
|
const VkClearDepthStencilValue* pDepthStencil,
|
|
|
|
uint32_t rangeCount,
|
|
|
|
const VkImageSubresourceRange* pRanges);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t attachmentCount,
|
|
|
|
const VkClearAttachment* pAttachments,
|
|
|
|
uint32_t rectCount,
|
|
|
|
const VkClearRect* pRects);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkImage srcImage,
|
|
|
|
VkImageLayout srcImageLayout,
|
|
|
|
VkImage dstImage,
|
|
|
|
VkImageLayout dstImageLayout,
|
|
|
|
uint32_t regionCount,
|
|
|
|
const VkImageResolve* pRegions);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkEvent event,
|
|
|
|
VkPipelineStageFlags stageMask);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkEvent event,
|
|
|
|
VkPipelineStageFlags stageMask);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t eventCount,
|
|
|
|
const VkEvent* pEvents,
|
|
|
|
VkPipelineStageFlags srcStageMask,
|
|
|
|
VkPipelineStageFlags dstStageMask,
|
|
|
|
uint32_t memoryBarrierCount,
|
|
|
|
const VkMemoryBarrier* pMemoryBarriers,
|
|
|
|
uint32_t bufferMemoryBarrierCount,
|
|
|
|
const VkBufferMemoryBarrier* pBufferMemoryBarriers,
|
|
|
|
uint32_t imageMemoryBarrierCount,
|
|
|
|
const VkImageMemoryBarrier* pImageMemoryBarriers);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkPipelineStageFlags srcStageMask,
|
|
|
|
VkPipelineStageFlags dstStageMask,
|
|
|
|
VkDependencyFlags dependencyFlags,
|
|
|
|
uint32_t memoryBarrierCount,
|
|
|
|
const VkMemoryBarrier* pMemoryBarriers,
|
|
|
|
uint32_t bufferMemoryBarrierCount,
|
|
|
|
const VkBufferMemoryBarrier* pBufferMemoryBarriers,
|
|
|
|
uint32_t imageMemoryBarrierCount,
|
|
|
|
const VkImageMemoryBarrier* pImageMemoryBarriers);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkQueryPool queryPool,
|
|
|
|
uint32_t query,
|
|
|
|
VkQueryControlFlags flags);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkQueryPool queryPool,
|
|
|
|
uint32_t query);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkQueryPool queryPool,
|
|
|
|
uint32_t firstQuery,
|
|
|
|
uint32_t queryCount);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkPipelineStageFlagBits pipelineStage,
|
|
|
|
VkQueryPool queryPool,
|
|
|
|
uint32_t query);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkQueryPool queryPool,
|
|
|
|
uint32_t firstQuery,
|
|
|
|
uint32_t queryCount,
|
|
|
|
VkBuffer dstBuffer,
|
|
|
|
VkDeviceSize dstOffset,
|
|
|
|
VkDeviceSize stride,
|
|
|
|
VkQueryResultFlags flags);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkPipelineLayout layout,
|
|
|
|
VkShaderStageFlags stageFlags,
|
|
|
|
uint32_t offset,
|
|
|
|
uint32_t size,
|
|
|
|
const void* pValues);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
const VkRenderPassBeginInfo* pRenderPassBegin,
|
|
|
|
VkSubpassContents contents);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkSubpassContents contents);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
|
|
|
|
VkCommandBuffer commandBuffer);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t commandBufferCount,
|
|
|
|
const VkCommandBuffer* pCommandBuffers);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_KHR_surface 1
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
|
|
|
|
|
|
|
|
#define VK_KHR_SURFACE_SPEC_VERSION 25
|
|
|
|
#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
|
Change log for May 13, 2016 Vulkan 1.0.13 spec update:
* Bump API patch number and header version number to 13 for this
update.
Github Issues:
* Improve the description of ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the
VK_KHR_surface extension (public issue 174).
* Clarify use of etext:*_SIMULTANEOUS_USE_BIT for secondary command
buffers (public issue 182).
* Fix typos in VK_KHR_wayland_surface extension where code:wl_device was
used instead of code:wl_display (public issue 193).
* Replaced {apiname} with ``Vulkan'' in XML validity statements (public
issue 199).
* Fix dead links for WSI handle types (public issue 200).
*** N.b. this needs to be done in WSI branches as well ***
* Use "signaled" instead of "signalled" spelling everywhere (public issue
201).
*** N.b. this needs to be done in WSI branches as well ***
* Move readme.pdf target directory for XML schema documentation into the
target generation directory, instead of leaving it checked into the spec
source tree (public issue 203).
*** N.b. need to add generated PDF to registry index/1.0 page
* Fix duplicate 'which which' typo in description of
elink:VkCommandPoolResetFlagBits (public issue 204).
* Move the <<Programmable Primitive Shading>> section up one level, out of
the <<drawing-primitive-topologies,Primitive Topologies>> section
(public issue 209).
Internal Issues:
* Clarify in the <<pipelines-cache,Pipeline Cache>> section that
implementations should not manage the size of pipeline cache (internal
issue 192).
* Deprecate the concept of device layers and associated commands (internal
issue 255).
* Remove ename:VK_INCOMPLETE from the list of possible result codes of
flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR (internal issue 314).
* Add missing std140/std430 rule: the base alignment of a member following
a structure is a multiple of the structure's base alignment (internal
issue 321).
* Fixes naming of the single elink:VkColorSpaceKHR enum from
ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR to
ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR in XML/header and the
VK_KHR_swapchain and VK_KHR_surface extensions to match the style of the
typename (space and color are two words, not one) (internal issue 322).
* Make it clear that code:LocalInvocationID should only be applied to an
input variable and normalize the language describing
code:LocalInvocationID to the language for other compute shader
variables in the <<interfaces-builtin-variables,Built-in Variables>>
section, and add normative language (internal issue 323).
* Clarify in the <<fundamentals-returncodes,Return Codes>> section that
the result pointer may be modified for specific commands, even if a
runtime error is returned (internal issue 324).
2016-05-14 00:01:59 +00:00
|
|
|
#define VK_COLORSPACE_SRGB_NONLINEAR_KHR VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkColorSpaceKHR {
|
Change log for May 13, 2016 Vulkan 1.0.13 spec update:
* Bump API patch number and header version number to 13 for this
update.
Github Issues:
* Improve the description of ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the
VK_KHR_surface extension (public issue 174).
* Clarify use of etext:*_SIMULTANEOUS_USE_BIT for secondary command
buffers (public issue 182).
* Fix typos in VK_KHR_wayland_surface extension where code:wl_device was
used instead of code:wl_display (public issue 193).
* Replaced {apiname} with ``Vulkan'' in XML validity statements (public
issue 199).
* Fix dead links for WSI handle types (public issue 200).
*** N.b. this needs to be done in WSI branches as well ***
* Use "signaled" instead of "signalled" spelling everywhere (public issue
201).
*** N.b. this needs to be done in WSI branches as well ***
* Move readme.pdf target directory for XML schema documentation into the
target generation directory, instead of leaving it checked into the spec
source tree (public issue 203).
*** N.b. need to add generated PDF to registry index/1.0 page
* Fix duplicate 'which which' typo in description of
elink:VkCommandPoolResetFlagBits (public issue 204).
* Move the <<Programmable Primitive Shading>> section up one level, out of
the <<drawing-primitive-topologies,Primitive Topologies>> section
(public issue 209).
Internal Issues:
* Clarify in the <<pipelines-cache,Pipeline Cache>> section that
implementations should not manage the size of pipeline cache (internal
issue 192).
* Deprecate the concept of device layers and associated commands (internal
issue 255).
* Remove ename:VK_INCOMPLETE from the list of possible result codes of
flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR (internal issue 314).
* Add missing std140/std430 rule: the base alignment of a member following
a structure is a multiple of the structure's base alignment (internal
issue 321).
* Fixes naming of the single elink:VkColorSpaceKHR enum from
ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR to
ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR in XML/header and the
VK_KHR_swapchain and VK_KHR_surface extensions to match the style of the
typename (space and color are two words, not one) (internal issue 322).
* Make it clear that code:LocalInvocationID should only be applied to an
input variable and normalize the language describing
code:LocalInvocationID to the language for other compute shader
variables in the <<interfaces-builtin-variables,Built-in Variables>>
section, and add normative language (internal issue 323).
* Clarify in the <<fundamentals-returncodes,Return Codes>> section that
the result pointer may be modified for specific commands, even if a
runtime error is returned (internal issue 324).
2016-05-14 00:01:59 +00:00
|
|
|
VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
|
2017-03-25 08:46:58 +00:00
|
|
|
VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
|
|
|
|
VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
|
|
|
|
VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
|
|
|
|
VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
|
|
|
|
VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
|
|
|
|
VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
|
|
|
|
VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
|
|
|
|
VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
|
|
|
|
VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
|
|
|
|
VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
|
|
|
|
VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
|
|
|
|
VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
|
|
|
|
VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
|
Change log for May 13, 2016 Vulkan 1.0.13 spec update:
* Bump API patch number and header version number to 13 for this
update.
Github Issues:
* Improve the description of ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the
VK_KHR_surface extension (public issue 174).
* Clarify use of etext:*_SIMULTANEOUS_USE_BIT for secondary command
buffers (public issue 182).
* Fix typos in VK_KHR_wayland_surface extension where code:wl_device was
used instead of code:wl_display (public issue 193).
* Replaced {apiname} with ``Vulkan'' in XML validity statements (public
issue 199).
* Fix dead links for WSI handle types (public issue 200).
*** N.b. this needs to be done in WSI branches as well ***
* Use "signaled" instead of "signalled" spelling everywhere (public issue
201).
*** N.b. this needs to be done in WSI branches as well ***
* Move readme.pdf target directory for XML schema documentation into the
target generation directory, instead of leaving it checked into the spec
source tree (public issue 203).
*** N.b. need to add generated PDF to registry index/1.0 page
* Fix duplicate 'which which' typo in description of
elink:VkCommandPoolResetFlagBits (public issue 204).
* Move the <<Programmable Primitive Shading>> section up one level, out of
the <<drawing-primitive-topologies,Primitive Topologies>> section
(public issue 209).
Internal Issues:
* Clarify in the <<pipelines-cache,Pipeline Cache>> section that
implementations should not manage the size of pipeline cache (internal
issue 192).
* Deprecate the concept of device layers and associated commands (internal
issue 255).
* Remove ename:VK_INCOMPLETE from the list of possible result codes of
flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR (internal issue 314).
* Add missing std140/std430 rule: the base alignment of a member following
a structure is a multiple of the structure's base alignment (internal
issue 321).
* Fixes naming of the single elink:VkColorSpaceKHR enum from
ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR to
ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR in XML/header and the
VK_KHR_swapchain and VK_KHR_surface extensions to match the style of the
typename (space and color are two words, not one) (internal issue 322).
* Make it clear that code:LocalInvocationID should only be applied to an
input variable and normalize the language describing
code:LocalInvocationID to the language for other compute shader
variables in the <<interfaces-builtin-variables,Built-in Variables>>
section, and add normative language (internal issue 323).
* Clarify in the <<fundamentals-returncodes,Return Codes>> section that
the result pointer may be modified for specific commands, even if a
runtime error is returned (internal issue 324).
2016-05-14 00:01:59 +00:00
|
|
|
VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
|
|
|
|
VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
|
|
|
|
VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkColorSpaceKHR;
|
|
|
|
|
|
|
|
typedef enum VkPresentModeKHR {
|
|
|
|
VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
|
|
|
|
VK_PRESENT_MODE_MAILBOX_KHR = 1,
|
|
|
|
VK_PRESENT_MODE_FIFO_KHR = 2,
|
|
|
|
VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
|
Change log for May 12, 2017 Vulkan 1.0.49 spec update:
* Bump API patch number and header version number to 49 for this update.
Github Issues:
* Modify reference page extraction script to make internal links to spec
anchors refer to the core specification instead of being dangling links
(public issue 455).
* Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
published StorageBuffer class (public issue 466).
* Both flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties return
ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
application providing a layer name that wasn't returned by
ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
* The specification for flink:VkApplicationInfo::apiVersion says that the
driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
pname:apiVersion specifies a non-supported version. That means that the
valid usage should not also state that, and so the VU statement is
removed. The VU had language about "`an effective substitute`" that
would have been lost, and so it was moved to the pname:apiVersion
description (public issue 488).
Internal Issues:
* Modify implicit validity generator script to assign asciidoc anchors to
all valid usage statements it generates, and reflow.py script to insert
Valid Usage ID (VUID) tags into the specification source files for
explicit valid usage statements. This has no semantic effects on the
specification, but will support the validation layer's detection of
valid usage violations and allow it to link into the corresponding part
of the specification (internal issue 583).
* Assign VUID tags to all explicit VU statements and document
the process and tag format in the style guide (internal issue 583).
* Clarify the rules of whether to structure new functionality as instance
extensions, device extensions, or both in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (internal issue 749).
* Require that SPIR-V run-time arrays are only used with the
code:BufferBlock decoration (internal issue 750).
* Fix implicit and explicit valid usage statements for
slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
* Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
section (internal issue 770).
* Clarify that disabling depth testing also disables depth writes in the
<<fragops-ds-state, Depth and Stencil Operations>> section (internal
issue 775).
* flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
imageLayout at the time the image is accessed. This was in the spec
text, but needed an associated valid usage statement.
* Note that only 32-bit atomic operations are supported in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Note that code:UniformConstant variables must not have initializers in
the <<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Add a new elink:VkObjectType enumeration to the core API, promoted from
elink:VkDebugObjectTypeEXT, since it is used for much more than just the
debug_report extension.
New Extensions:
* `VK_KHR_get_surface_capabilities2`
* `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
|
|
|
VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
|
|
|
|
VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
|
|
|
|
VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
|
|
|
|
VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
|
|
|
|
VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkPresentModeKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkSurfaceTransformFlagBitsKHR {
|
|
|
|
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
|
|
|
|
VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
|
|
|
|
VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
|
|
|
|
VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
|
|
|
|
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
|
|
|
|
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
|
|
|
|
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
|
|
|
|
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
|
|
|
|
VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkSurfaceTransformFlagBitsKHR;
|
|
|
|
typedef VkFlags VkSurfaceTransformFlagsKHR;
|
|
|
|
|
|
|
|
typedef enum VkCompositeAlphaFlagBitsKHR {
|
|
|
|
VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
|
|
|
|
VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
|
|
|
|
VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
|
|
|
|
VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkCompositeAlphaFlagBitsKHR;
|
|
|
|
typedef VkFlags VkCompositeAlphaFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkSurfaceCapabilitiesKHR {
|
|
|
|
uint32_t minImageCount;
|
|
|
|
uint32_t maxImageCount;
|
|
|
|
VkExtent2D currentExtent;
|
|
|
|
VkExtent2D minImageExtent;
|
|
|
|
VkExtent2D maxImageExtent;
|
|
|
|
uint32_t maxImageArrayLayers;
|
|
|
|
VkSurfaceTransformFlagsKHR supportedTransforms;
|
|
|
|
VkSurfaceTransformFlagBitsKHR currentTransform;
|
|
|
|
VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
|
|
|
|
VkImageUsageFlags supportedUsageFlags;
|
|
|
|
} VkSurfaceCapabilitiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkSurfaceFormatKHR {
|
|
|
|
VkFormat format;
|
|
|
|
VkColorSpaceKHR colorSpace;
|
|
|
|
} VkSurfaceFormatKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
|
|
|
|
VkInstance instance,
|
|
|
|
VkSurfaceKHR surface,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t queueFamilyIndex,
|
|
|
|
VkSurfaceKHR surface,
|
|
|
|
VkBool32* pSupported);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkSurfaceKHR surface,
|
|
|
|
VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkSurfaceKHR surface,
|
|
|
|
uint32_t* pSurfaceFormatCount,
|
|
|
|
VkSurfaceFormatKHR* pSurfaceFormats);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkSurfaceKHR surface,
|
|
|
|
uint32_t* pPresentModeCount,
|
|
|
|
VkPresentModeKHR* pPresentModes);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_KHR_swapchain 1
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
|
|
|
|
|
2016-04-21 08:08:38 +00:00
|
|
|
#define VK_KHR_SWAPCHAIN_SPEC_VERSION 68
|
2016-02-16 09:53:44 +00:00
|
|
|
#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
|
|
|
|
typedef enum VkSwapchainCreateFlagBitsKHR {
|
|
|
|
VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001,
|
|
|
|
VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkSwapchainCreateFlagBitsKHR;
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef VkFlags VkSwapchainCreateFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkSwapchainCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSwapchainCreateFlagsKHR flags;
|
|
|
|
VkSurfaceKHR surface;
|
|
|
|
uint32_t minImageCount;
|
|
|
|
VkFormat imageFormat;
|
|
|
|
VkColorSpaceKHR imageColorSpace;
|
|
|
|
VkExtent2D imageExtent;
|
|
|
|
uint32_t imageArrayLayers;
|
|
|
|
VkImageUsageFlags imageUsage;
|
|
|
|
VkSharingMode imageSharingMode;
|
|
|
|
uint32_t queueFamilyIndexCount;
|
|
|
|
const uint32_t* pQueueFamilyIndices;
|
|
|
|
VkSurfaceTransformFlagBitsKHR preTransform;
|
|
|
|
VkCompositeAlphaFlagBitsKHR compositeAlpha;
|
|
|
|
VkPresentModeKHR presentMode;
|
|
|
|
VkBool32 clipped;
|
|
|
|
VkSwapchainKHR oldSwapchain;
|
|
|
|
} VkSwapchainCreateInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkPresentInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t waitSemaphoreCount;
|
|
|
|
const VkSemaphore* pWaitSemaphores;
|
|
|
|
uint32_t swapchainCount;
|
|
|
|
const VkSwapchainKHR* pSwapchains;
|
|
|
|
const uint32_t* pImageIndices;
|
|
|
|
VkResult* pResults;
|
|
|
|
} VkPresentInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkSwapchainCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSwapchainKHR* pSwapchain);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkSwapchainKHR swapchain,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkSwapchainKHR swapchain,
|
|
|
|
uint32_t* pSwapchainImageCount,
|
|
|
|
VkImage* pSwapchainImages);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkSwapchainKHR swapchain,
|
|
|
|
uint64_t timeout,
|
|
|
|
VkSemaphore semaphore,
|
|
|
|
VkFence fence,
|
|
|
|
uint32_t* pImageIndex);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
|
|
|
|
VkQueue queue,
|
|
|
|
const VkPresentInfoKHR* pPresentInfo);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_KHR_display 1
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
|
|
|
|
|
|
|
|
#define VK_KHR_DISPLAY_SPEC_VERSION 21
|
|
|
|
#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
|
|
|
|
VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
|
|
|
|
VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
|
|
|
|
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
|
|
|
|
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkDisplayPlaneAlphaFlagBitsKHR;
|
|
|
|
typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
typedef VkFlags VkDisplayModeCreateFlagsKHR;
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkDisplayPropertiesKHR {
|
|
|
|
VkDisplayKHR display;
|
|
|
|
const char* displayName;
|
|
|
|
VkExtent2D physicalDimensions;
|
|
|
|
VkExtent2D physicalResolution;
|
|
|
|
VkSurfaceTransformFlagsKHR supportedTransforms;
|
|
|
|
VkBool32 planeReorderPossible;
|
|
|
|
VkBool32 persistentContent;
|
|
|
|
} VkDisplayPropertiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkDisplayModeParametersKHR {
|
|
|
|
VkExtent2D visibleRegion;
|
|
|
|
uint32_t refreshRate;
|
|
|
|
} VkDisplayModeParametersKHR;
|
|
|
|
|
|
|
|
typedef struct VkDisplayModePropertiesKHR {
|
|
|
|
VkDisplayModeKHR displayMode;
|
|
|
|
VkDisplayModeParametersKHR parameters;
|
|
|
|
} VkDisplayModePropertiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkDisplayModeCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDisplayModeCreateFlagsKHR flags;
|
|
|
|
VkDisplayModeParametersKHR parameters;
|
|
|
|
} VkDisplayModeCreateInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkDisplayPlaneCapabilitiesKHR {
|
|
|
|
VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
|
|
|
|
VkOffset2D minSrcPosition;
|
|
|
|
VkOffset2D maxSrcPosition;
|
|
|
|
VkExtent2D minSrcExtent;
|
|
|
|
VkExtent2D maxSrcExtent;
|
|
|
|
VkOffset2D minDstPosition;
|
|
|
|
VkOffset2D maxDstPosition;
|
|
|
|
VkExtent2D minDstExtent;
|
|
|
|
VkExtent2D maxDstExtent;
|
|
|
|
} VkDisplayPlaneCapabilitiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkDisplayPlanePropertiesKHR {
|
|
|
|
VkDisplayKHR currentDisplay;
|
|
|
|
uint32_t currentStackIndex;
|
|
|
|
} VkDisplayPlanePropertiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkDisplaySurfaceCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDisplaySurfaceCreateFlagsKHR flags;
|
|
|
|
VkDisplayModeKHR displayMode;
|
|
|
|
uint32_t planeIndex;
|
|
|
|
uint32_t planeStackIndex;
|
|
|
|
VkSurfaceTransformFlagBitsKHR transform;
|
|
|
|
float globalAlpha;
|
|
|
|
VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
|
|
|
|
VkExtent2D imageExtent;
|
|
|
|
} VkDisplaySurfaceCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
|
2016-04-21 08:08:38 +00:00
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
|
2016-02-16 09:53:44 +00:00
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t* pPropertyCount,
|
|
|
|
VkDisplayPropertiesKHR* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t* pPropertyCount,
|
|
|
|
VkDisplayPlanePropertiesKHR* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t planeIndex,
|
|
|
|
uint32_t* pDisplayCount,
|
|
|
|
VkDisplayKHR* pDisplays);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkDisplayKHR display,
|
|
|
|
uint32_t* pPropertyCount,
|
|
|
|
VkDisplayModePropertiesKHR* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkDisplayKHR display,
|
|
|
|
const VkDisplayModeCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkDisplayModeKHR* pMode);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkDisplayModeKHR mode,
|
|
|
|
uint32_t planeIndex,
|
|
|
|
VkDisplayPlaneCapabilitiesKHR* pCapabilities);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_KHR_display_swapchain 1
|
|
|
|
#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
|
|
|
|
#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
|
|
|
|
|
|
|
|
typedef struct VkDisplayPresentInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkRect2D srcRect;
|
|
|
|
VkRect2D dstRect;
|
|
|
|
VkBool32 persistent;
|
|
|
|
} VkDisplayPresentInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t swapchainCount,
|
|
|
|
const VkSwapchainCreateInfoKHR* pCreateInfos,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSwapchainKHR* pSwapchains);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
|
|
|
#define VK_KHR_xlib_surface 1
|
|
|
|
#include <X11/Xlib.h>
|
|
|
|
|
|
|
|
#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
|
|
|
|
#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
|
|
|
|
|
|
|
|
typedef VkFlags VkXlibSurfaceCreateFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkXlibSurfaceCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkXlibSurfaceCreateFlagsKHR flags;
|
|
|
|
Display* dpy;
|
|
|
|
Window window;
|
|
|
|
} VkXlibSurfaceCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t queueFamilyIndex,
|
|
|
|
Display* dpy,
|
|
|
|
VisualID visualID);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_XLIB_KHR */
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_XCB_KHR
|
|
|
|
#define VK_KHR_xcb_surface 1
|
|
|
|
#include <xcb/xcb.h>
|
|
|
|
|
|
|
|
#define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
|
|
|
|
#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
|
|
|
|
|
|
|
|
typedef VkFlags VkXcbSurfaceCreateFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkXcbSurfaceCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkXcbSurfaceCreateFlagsKHR flags;
|
|
|
|
xcb_connection_t* connection;
|
|
|
|
xcb_window_t window;
|
|
|
|
} VkXcbSurfaceCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t queueFamilyIndex,
|
|
|
|
xcb_connection_t* connection,
|
|
|
|
xcb_visualid_t visual_id);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_XCB_KHR */
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
|
|
|
#define VK_KHR_wayland_surface 1
|
|
|
|
#include <wayland-client.h>
|
|
|
|
|
2017-03-11 01:39:29 +00:00
|
|
|
#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
|
2016-02-16 09:53:44 +00:00
|
|
|
#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
|
|
|
|
|
|
|
|
typedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkWaylandSurfaceCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkWaylandSurfaceCreateFlagsKHR flags;
|
|
|
|
struct wl_display* display;
|
|
|
|
struct wl_surface* surface;
|
|
|
|
} VkWaylandSurfaceCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t queueFamilyIndex,
|
|
|
|
struct wl_display* display);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_MIR_KHR
|
|
|
|
#define VK_KHR_mir_surface 1
|
|
|
|
#include <mir_toolkit/client_types.h>
|
|
|
|
|
|
|
|
#define VK_KHR_MIR_SURFACE_SPEC_VERSION 4
|
|
|
|
#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
|
|
|
|
|
|
|
|
typedef VkFlags VkMirSurfaceCreateFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkMirSurfaceCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkMirSurfaceCreateFlagsKHR flags;
|
|
|
|
MirConnection* connection;
|
|
|
|
MirSurface* mirSurface;
|
|
|
|
} VkMirSurfaceCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkMirSurfaceCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t queueFamilyIndex,
|
|
|
|
MirConnection* connection);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_MIR_KHR */
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
|
|
|
#define VK_KHR_android_surface 1
|
|
|
|
#include <android/native_window.h>
|
|
|
|
|
|
|
|
#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
|
|
|
|
#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
|
|
|
|
|
|
|
|
typedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkAndroidSurfaceCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkAndroidSurfaceCreateFlagsKHR flags;
|
|
|
|
ANativeWindow* window;
|
|
|
|
} VkAndroidSurfaceCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_ANDROID_KHR */
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
#define VK_KHR_win32_surface 1
|
|
|
|
#include <windows.h>
|
|
|
|
|
2017-06-05 03:48:43 +00:00
|
|
|
#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
|
2016-02-16 09:53:44 +00:00
|
|
|
#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
|
|
|
|
|
|
|
|
typedef VkFlags VkWin32SurfaceCreateFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkWin32SurfaceCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkWin32SurfaceCreateFlagsKHR flags;
|
|
|
|
HINSTANCE hinstance;
|
|
|
|
HWND hwnd;
|
|
|
|
} VkWin32SurfaceCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t queueFamilyIndex);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
|
|
|
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
#define VK_KHR_sampler_mirror_clamp_to_edge 1
|
|
|
|
#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
|
|
|
|
|
|
|
|
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
#define VK_KHR_get_physical_device_properties2 1
|
|
|
|
#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceFeatures2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkPhysicalDeviceFeatures features;
|
|
|
|
} VkPhysicalDeviceFeatures2KHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceProperties2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkPhysicalDeviceProperties properties;
|
|
|
|
} VkPhysicalDeviceProperties2KHR;
|
|
|
|
|
|
|
|
typedef struct VkFormatProperties2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkFormatProperties formatProperties;
|
|
|
|
} VkFormatProperties2KHR;
|
|
|
|
|
|
|
|
typedef struct VkImageFormatProperties2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkImageFormatProperties imageFormatProperties;
|
|
|
|
} VkImageFormatProperties2KHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceImageFormatInfo2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkFormat format;
|
|
|
|
VkImageType type;
|
|
|
|
VkImageTiling tiling;
|
|
|
|
VkImageUsageFlags usage;
|
|
|
|
VkImageCreateFlags flags;
|
|
|
|
} VkPhysicalDeviceImageFormatInfo2KHR;
|
|
|
|
|
|
|
|
typedef struct VkQueueFamilyProperties2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkQueueFamilyProperties queueFamilyProperties;
|
|
|
|
} VkQueueFamilyProperties2KHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceMemoryProperties2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkPhysicalDeviceMemoryProperties memoryProperties;
|
|
|
|
} VkPhysicalDeviceMemoryProperties2KHR;
|
|
|
|
|
|
|
|
typedef struct VkSparseImageFormatProperties2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkSparseImageFormatProperties properties;
|
|
|
|
} VkSparseImageFormatProperties2KHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkFormat format;
|
|
|
|
VkImageType type;
|
|
|
|
VkSampleCountFlagBits samples;
|
|
|
|
VkImageUsageFlags usage;
|
|
|
|
VkImageTiling tiling;
|
|
|
|
} VkPhysicalDeviceSparseImageFormatInfo2KHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkPhysicalDeviceFeatures2KHR* pFeatures);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkPhysicalDeviceProperties2KHR* pProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkFormat format,
|
|
|
|
VkFormatProperties2KHR* pFormatProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
|
|
|
|
VkImageFormatProperties2KHR* pImageFormatProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
uint32_t* pQueueFamilyPropertyCount,
|
|
|
|
VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
|
|
|
|
uint32_t* pPropertyCount,
|
|
|
|
VkSparseImageFormatProperties2KHR* pProperties);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_KHR_shader_draw_parameters 1
|
|
|
|
#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_KHR_maintenance1 1
|
|
|
|
#define VK_KHR_MAINTENANCE1_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
|
|
|
|
|
|
|
|
typedef VkFlags VkCommandPoolTrimFlagsKHR;
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkCommandPool commandPool,
|
|
|
|
VkCommandPoolTrimFlagsKHR flags);
|
|
|
|
#endif
|
|
|
|
|
2017-07-12 00:57:41 +00:00
|
|
|
#define VK_KHR_external_memory_capabilities 1
|
|
|
|
#define VK_LUID_SIZE_KHR 8
|
|
|
|
#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkExternalMemoryHandleTypeFlagBitsKHR {
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
|
2017-11-27 09:07:06 +00:00
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
|
2017-07-12 00:57:41 +00:00
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkExternalMemoryHandleTypeFlagBitsKHR;
|
|
|
|
typedef VkFlags VkExternalMemoryHandleTypeFlagsKHR;
|
|
|
|
|
|
|
|
typedef enum VkExternalMemoryFeatureFlagBitsKHR {
|
|
|
|
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
|
|
|
|
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
|
|
|
|
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
|
|
|
|
VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkExternalMemoryFeatureFlagBitsKHR;
|
|
|
|
typedef VkFlags VkExternalMemoryFeatureFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkExternalMemoryPropertiesKHR {
|
|
|
|
VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures;
|
|
|
|
VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes;
|
|
|
|
VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes;
|
|
|
|
} VkExternalMemoryPropertiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceExternalImageFormatInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkPhysicalDeviceExternalImageFormatInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkExternalImageFormatPropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkExternalMemoryPropertiesKHR externalMemoryProperties;
|
|
|
|
} VkExternalImageFormatPropertiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceExternalBufferInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBufferCreateFlags flags;
|
|
|
|
VkBufferUsageFlags usage;
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkPhysicalDeviceExternalBufferInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkExternalBufferPropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkExternalMemoryPropertiesKHR externalMemoryProperties;
|
|
|
|
} VkExternalBufferPropertiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceIDPropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
uint8_t deviceUUID[VK_UUID_SIZE];
|
|
|
|
uint8_t driverUUID[VK_UUID_SIZE];
|
|
|
|
uint8_t deviceLUID[VK_LUID_SIZE_KHR];
|
|
|
|
uint32_t deviceNodeMask;
|
|
|
|
VkBool32 deviceLUIDValid;
|
|
|
|
} VkPhysicalDeviceIDPropertiesKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
|
|
|
|
VkExternalBufferPropertiesKHR* pExternalBufferProperties);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_KHR_external_memory 1
|
|
|
|
#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
|
|
|
|
#define VK_QUEUE_FAMILY_EXTERNAL_KHR (~0U-1)
|
|
|
|
|
|
|
|
typedef struct VkExternalMemoryImageCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagsKHR handleTypes;
|
|
|
|
} VkExternalMemoryImageCreateInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkExternalMemoryBufferCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagsKHR handleTypes;
|
|
|
|
} VkExternalMemoryBufferCreateInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkExportMemoryAllocateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagsKHR handleTypes;
|
|
|
|
} VkExportMemoryAllocateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
#define VK_KHR_external_memory_win32 1
|
|
|
|
#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
|
|
|
|
|
|
|
|
typedef struct VkImportMemoryWin32HandleInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType;
|
|
|
|
HANDLE handle;
|
|
|
|
LPCWSTR name;
|
|
|
|
} VkImportMemoryWin32HandleInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkExportMemoryWin32HandleInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
const SECURITY_ATTRIBUTES* pAttributes;
|
|
|
|
DWORD dwAccess;
|
|
|
|
LPCWSTR name;
|
|
|
|
} VkExportMemoryWin32HandleInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkMemoryWin32HandlePropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
uint32_t memoryTypeBits;
|
|
|
|
} VkMemoryWin32HandlePropertiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkMemoryGetWin32HandleInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDeviceMemory memory;
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkMemoryGetWin32HandleInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
|
|
|
HANDLE* pHandle);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType,
|
|
|
|
HANDLE handle,
|
|
|
|
VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
|
|
|
|
|
|
|
#define VK_KHR_external_memory_fd 1
|
|
|
|
#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
|
|
|
|
|
|
|
|
typedef struct VkImportMemoryFdInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType;
|
|
|
|
int fd;
|
|
|
|
} VkImportMemoryFdInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkMemoryFdPropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
uint32_t memoryTypeBits;
|
|
|
|
} VkMemoryFdPropertiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkMemoryGetFdInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDeviceMemory memory;
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkMemoryGetFdInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkMemoryGetFdInfoKHR* pGetFdInfo,
|
|
|
|
int* pFd);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType,
|
|
|
|
int fd,
|
|
|
|
VkMemoryFdPropertiesKHR* pMemoryFdProperties);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
#define VK_KHR_win32_keyed_mutex 1
|
|
|
|
#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
|
|
|
|
|
|
|
|
typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t acquireCount;
|
|
|
|
const VkDeviceMemory* pAcquireSyncs;
|
|
|
|
const uint64_t* pAcquireKeys;
|
|
|
|
const uint32_t* pAcquireTimeouts;
|
|
|
|
uint32_t releaseCount;
|
|
|
|
const VkDeviceMemory* pReleaseSyncs;
|
|
|
|
const uint64_t* pReleaseKeys;
|
|
|
|
} VkWin32KeyedMutexAcquireReleaseInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
|
|
|
|
|
|
|
#define VK_KHR_external_semaphore_capabilities 1
|
|
|
|
#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkExternalSemaphoreHandleTypeFlagBitsKHR {
|
|
|
|
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
|
|
|
|
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
|
|
|
|
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
|
|
|
|
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008,
|
|
|
|
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000010,
|
|
|
|
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkExternalSemaphoreHandleTypeFlagBitsKHR;
|
|
|
|
typedef VkFlags VkExternalSemaphoreHandleTypeFlagsKHR;
|
|
|
|
|
|
|
|
typedef enum VkExternalSemaphoreFeatureFlagBitsKHR {
|
|
|
|
VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
|
|
|
|
VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
|
|
|
|
VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkExternalSemaphoreFeatureFlagBitsKHR;
|
|
|
|
typedef VkFlags VkExternalSemaphoreFeatureFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceExternalSemaphoreInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalSemaphoreHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkPhysicalDeviceExternalSemaphoreInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkExternalSemaphorePropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes;
|
|
|
|
VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes;
|
|
|
|
VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures;
|
|
|
|
} VkExternalSemaphorePropertiesKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
|
|
|
|
VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_KHR_external_semaphore 1
|
|
|
|
#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkSemaphoreImportFlagBitsKHR {
|
|
|
|
VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
|
|
|
|
VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkSemaphoreImportFlagBitsKHR;
|
|
|
|
typedef VkFlags VkSemaphoreImportFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkExportSemaphoreCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalSemaphoreHandleTypeFlagsKHR handleTypes;
|
|
|
|
} VkExportSemaphoreCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
#define VK_KHR_external_semaphore_win32 1
|
|
|
|
#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
|
|
|
|
|
|
|
|
typedef struct VkImportSemaphoreWin32HandleInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSemaphore semaphore;
|
|
|
|
VkSemaphoreImportFlagsKHR flags;
|
|
|
|
VkExternalSemaphoreHandleTypeFlagBitsKHR handleType;
|
|
|
|
HANDLE handle;
|
|
|
|
LPCWSTR name;
|
|
|
|
} VkImportSemaphoreWin32HandleInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkExportSemaphoreWin32HandleInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
const SECURITY_ATTRIBUTES* pAttributes;
|
|
|
|
DWORD dwAccess;
|
|
|
|
LPCWSTR name;
|
|
|
|
} VkExportSemaphoreWin32HandleInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkD3D12FenceSubmitInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t waitSemaphoreValuesCount;
|
|
|
|
const uint64_t* pWaitSemaphoreValues;
|
|
|
|
uint32_t signalSemaphoreValuesCount;
|
|
|
|
const uint64_t* pSignalSemaphoreValues;
|
|
|
|
} VkD3D12FenceSubmitInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkSemaphoreGetWin32HandleInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSemaphore semaphore;
|
|
|
|
VkExternalSemaphoreHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkSemaphoreGetWin32HandleInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
|
|
|
HANDLE* pHandle);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
|
|
|
|
|
|
|
#define VK_KHR_external_semaphore_fd 1
|
|
|
|
#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
|
|
|
|
|
|
|
|
typedef struct VkImportSemaphoreFdInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSemaphore semaphore;
|
|
|
|
VkSemaphoreImportFlagsKHR flags;
|
|
|
|
VkExternalSemaphoreHandleTypeFlagBitsKHR handleType;
|
|
|
|
int fd;
|
|
|
|
} VkImportSemaphoreFdInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkSemaphoreGetFdInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSemaphore semaphore;
|
|
|
|
VkExternalSemaphoreHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkSemaphoreGetFdInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
|
|
|
|
int* pFd);
|
|
|
|
#endif
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#define VK_KHR_push_descriptor 1
|
|
|
|
#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
uint32_t maxPushDescriptors;
|
|
|
|
} VkPhysicalDevicePushDescriptorPropertiesKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkPipelineBindPoint pipelineBindPoint,
|
|
|
|
VkPipelineLayout layout,
|
|
|
|
uint32_t set,
|
|
|
|
uint32_t descriptorWriteCount,
|
|
|
|
const VkWriteDescriptorSet* pDescriptorWrites);
|
|
|
|
#endif
|
|
|
|
|
2017-07-12 00:57:41 +00:00
|
|
|
#define VK_KHR_16bit_storage 1
|
|
|
|
#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDevice16BitStorageFeaturesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkBool32 storageBuffer16BitAccess;
|
|
|
|
VkBool32 uniformAndStorageBuffer16BitAccess;
|
|
|
|
VkBool32 storagePushConstant16;
|
|
|
|
VkBool32 storageInputOutput16;
|
|
|
|
} VkPhysicalDevice16BitStorageFeaturesKHR;
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-31 23:06:31 +00:00
|
|
|
#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;
|
|
|
|
|
|
|
|
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#define VK_KHR_descriptor_update_template 1
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR)
|
|
|
|
|
|
|
|
#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkDescriptorUpdateTemplateTypeKHR {
|
|
|
|
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
|
|
|
|
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
|
|
|
|
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR,
|
|
|
|
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
|
|
|
|
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE_KHR = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR + 1),
|
|
|
|
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkDescriptorUpdateTemplateTypeKHR;
|
|
|
|
|
|
|
|
typedef VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkDescriptorUpdateTemplateEntryKHR {
|
|
|
|
uint32_t dstBinding;
|
|
|
|
uint32_t dstArrayElement;
|
|
|
|
uint32_t descriptorCount;
|
|
|
|
VkDescriptorType descriptorType;
|
|
|
|
size_t offset;
|
|
|
|
size_t stride;
|
|
|
|
} VkDescriptorUpdateTemplateEntryKHR;
|
|
|
|
|
|
|
|
typedef struct VkDescriptorUpdateTemplateCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkDescriptorUpdateTemplateCreateFlagsKHR flags;
|
|
|
|
uint32_t descriptorUpdateEntryCount;
|
|
|
|
const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries;
|
|
|
|
VkDescriptorUpdateTemplateTypeKHR templateType;
|
|
|
|
VkDescriptorSetLayout descriptorSetLayout;
|
|
|
|
VkPipelineBindPoint pipelineBindPoint;
|
|
|
|
VkPipelineLayout pipelineLayout;
|
|
|
|
uint32_t set;
|
|
|
|
} VkDescriptorUpdateTemplateCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void* pData);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkDescriptorSet descriptorSet,
|
|
|
|
VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
|
|
|
|
const void* pData);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
|
|
|
|
VkPipelineLayout layout,
|
|
|
|
uint32_t set,
|
|
|
|
const void* pData);
|
|
|
|
#endif
|
|
|
|
|
Change log for May 12, 2017 Vulkan 1.0.49 spec update:
* Bump API patch number and header version number to 49 for this update.
Github Issues:
* Modify reference page extraction script to make internal links to spec
anchors refer to the core specification instead of being dangling links
(public issue 455).
* Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
published StorageBuffer class (public issue 466).
* Both flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties return
ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
application providing a layer name that wasn't returned by
ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
* The specification for flink:VkApplicationInfo::apiVersion says that the
driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
pname:apiVersion specifies a non-supported version. That means that the
valid usage should not also state that, and so the VU statement is
removed. The VU had language about "`an effective substitute`" that
would have been lost, and so it was moved to the pname:apiVersion
description (public issue 488).
Internal Issues:
* Modify implicit validity generator script to assign asciidoc anchors to
all valid usage statements it generates, and reflow.py script to insert
Valid Usage ID (VUID) tags into the specification source files for
explicit valid usage statements. This has no semantic effects on the
specification, but will support the validation layer's detection of
valid usage violations and allow it to link into the corresponding part
of the specification (internal issue 583).
* Assign VUID tags to all explicit VU statements and document
the process and tag format in the style guide (internal issue 583).
* Clarify the rules of whether to structure new functionality as instance
extensions, device extensions, or both in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (internal issue 749).
* Require that SPIR-V run-time arrays are only used with the
code:BufferBlock decoration (internal issue 750).
* Fix implicit and explicit valid usage statements for
slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
* Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
section (internal issue 770).
* Clarify that disabling depth testing also disables depth writes in the
<<fragops-ds-state, Depth and Stencil Operations>> section (internal
issue 775).
* flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
imageLayout at the time the image is accessed. This was in the spec
text, but needed an associated valid usage statement.
* Note that only 32-bit atomic operations are supported in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Note that code:UniformConstant variables must not have initializers in
the <<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Add a new elink:VkObjectType enumeration to the core API, promoted from
elink:VkDebugObjectTypeEXT, since it is used for much more than just the
debug_report extension.
New Extensions:
* `VK_KHR_get_surface_capabilities2`
* `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
|
|
|
#define VK_KHR_shared_presentable_image 1
|
|
|
|
#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
|
|
|
|
|
|
|
|
typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkImageUsageFlags sharedPresentSupportedUsageFlags;
|
|
|
|
} VkSharedPresentSurfaceCapabilitiesKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkSwapchainKHR swapchain);
|
|
|
|
#endif
|
|
|
|
|
2017-07-12 00:57:41 +00:00
|
|
|
#define VK_KHR_external_fence_capabilities 1
|
|
|
|
#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkExternalFenceHandleTypeFlagBitsKHR {
|
|
|
|
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
|
|
|
|
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
|
|
|
|
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
|
|
|
|
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
|
|
|
|
VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkExternalFenceHandleTypeFlagBitsKHR;
|
|
|
|
typedef VkFlags VkExternalFenceHandleTypeFlagsKHR;
|
|
|
|
|
|
|
|
typedef enum VkExternalFenceFeatureFlagBitsKHR {
|
|
|
|
VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
|
|
|
|
VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
|
|
|
|
VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkExternalFenceFeatureFlagBitsKHR;
|
|
|
|
typedef VkFlags VkExternalFenceFeatureFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceExternalFenceInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalFenceHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkPhysicalDeviceExternalFenceInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkExternalFencePropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes;
|
|
|
|
VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes;
|
|
|
|
VkExternalFenceFeatureFlagsKHR externalFenceFeatures;
|
|
|
|
} VkExternalFencePropertiesKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
|
|
|
|
VkExternalFencePropertiesKHR* pExternalFenceProperties);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_KHR_external_fence 1
|
|
|
|
#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkFenceImportFlagBitsKHR {
|
|
|
|
VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
|
|
|
|
VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkFenceImportFlagBitsKHR;
|
|
|
|
typedef VkFlags VkFenceImportFlagsKHR;
|
|
|
|
|
|
|
|
typedef struct VkExportFenceCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalFenceHandleTypeFlagsKHR handleTypes;
|
|
|
|
} VkExportFenceCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
#define VK_KHR_external_fence_win32 1
|
|
|
|
#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
|
|
|
|
|
|
|
|
typedef struct VkImportFenceWin32HandleInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkFence fence;
|
|
|
|
VkFenceImportFlagsKHR flags;
|
|
|
|
VkExternalFenceHandleTypeFlagBitsKHR handleType;
|
|
|
|
HANDLE handle;
|
|
|
|
LPCWSTR name;
|
|
|
|
} VkImportFenceWin32HandleInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkExportFenceWin32HandleInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
const SECURITY_ATTRIBUTES* pAttributes;
|
|
|
|
DWORD dwAccess;
|
|
|
|
LPCWSTR name;
|
|
|
|
} VkExportFenceWin32HandleInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkFenceGetWin32HandleInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkFence fence;
|
|
|
|
VkExternalFenceHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkFenceGetWin32HandleInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
|
|
|
HANDLE* pHandle);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
|
|
|
|
|
|
|
#define VK_KHR_external_fence_fd 1
|
|
|
|
#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
|
|
|
|
|
|
|
|
typedef struct VkImportFenceFdInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkFence fence;
|
|
|
|
VkFenceImportFlagsKHR flags;
|
|
|
|
VkExternalFenceHandleTypeFlagBitsKHR handleType;
|
|
|
|
int fd;
|
|
|
|
} VkImportFenceFdInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkFenceGetFdInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkFence fence;
|
|
|
|
VkExternalFenceHandleTypeFlagBitsKHR handleType;
|
|
|
|
} VkFenceGetFdInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkFenceGetFdInfoKHR* pGetFdInfo,
|
|
|
|
int* pFd);
|
|
|
|
#endif
|
|
|
|
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
#define VK_KHR_maintenance2 1
|
|
|
|
#define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkPointClippingBehaviorKHR {
|
|
|
|
VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
|
|
|
|
VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
|
|
|
|
VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR,
|
|
|
|
VK_POINT_CLIPPING_BEHAVIOR_END_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR,
|
|
|
|
VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE_KHR = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR + 1),
|
|
|
|
VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkPointClippingBehaviorKHR;
|
|
|
|
|
|
|
|
typedef enum VkTessellationDomainOriginKHR {
|
|
|
|
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
|
|
|
|
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
|
|
|
|
VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR,
|
|
|
|
VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR,
|
|
|
|
VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE_KHR = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR + 1),
|
|
|
|
VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkTessellationDomainOriginKHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDevicePointClippingPropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkPointClippingBehaviorKHR pointClippingBehavior;
|
|
|
|
} VkPhysicalDevicePointClippingPropertiesKHR;
|
|
|
|
|
|
|
|
typedef struct VkInputAttachmentAspectReferenceKHR {
|
|
|
|
uint32_t subpass;
|
|
|
|
uint32_t inputAttachmentIndex;
|
|
|
|
VkImageAspectFlags aspectMask;
|
|
|
|
} VkInputAttachmentAspectReferenceKHR;
|
|
|
|
|
|
|
|
typedef struct VkRenderPassInputAttachmentAspectCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t aspectReferenceCount;
|
|
|
|
const VkInputAttachmentAspectReferenceKHR* pAspectReferences;
|
|
|
|
} VkRenderPassInputAttachmentAspectCreateInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkImageViewUsageCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImageUsageFlags usage;
|
|
|
|
} VkImageViewUsageCreateInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkPipelineTessellationDomainOriginStateCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkTessellationDomainOriginKHR domainOrigin;
|
|
|
|
} VkPipelineTessellationDomainOriginStateCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
|
Change log for May 12, 2017 Vulkan 1.0.49 spec update:
* Bump API patch number and header version number to 49 for this update.
Github Issues:
* Modify reference page extraction script to make internal links to spec
anchors refer to the core specification instead of being dangling links
(public issue 455).
* Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
published StorageBuffer class (public issue 466).
* Both flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties return
ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
application providing a layer name that wasn't returned by
ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
* The specification for flink:VkApplicationInfo::apiVersion says that the
driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
pname:apiVersion specifies a non-supported version. That means that the
valid usage should not also state that, and so the VU statement is
removed. The VU had language about "`an effective substitute`" that
would have been lost, and so it was moved to the pname:apiVersion
description (public issue 488).
Internal Issues:
* Modify implicit validity generator script to assign asciidoc anchors to
all valid usage statements it generates, and reflow.py script to insert
Valid Usage ID (VUID) tags into the specification source files for
explicit valid usage statements. This has no semantic effects on the
specification, but will support the validation layer's detection of
valid usage violations and allow it to link into the corresponding part
of the specification (internal issue 583).
* Assign VUID tags to all explicit VU statements and document
the process and tag format in the style guide (internal issue 583).
* Clarify the rules of whether to structure new functionality as instance
extensions, device extensions, or both in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (internal issue 749).
* Require that SPIR-V run-time arrays are only used with the
code:BufferBlock decoration (internal issue 750).
* Fix implicit and explicit valid usage statements for
slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
* Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
section (internal issue 770).
* Clarify that disabling depth testing also disables depth writes in the
<<fragops-ds-state, Depth and Stencil Operations>> section (internal
issue 775).
* flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
imageLayout at the time the image is accessed. This was in the spec
text, but needed an associated valid usage statement.
* Note that only 32-bit atomic operations are supported in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Note that code:UniformConstant variables must not have initializers in
the <<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Add a new elink:VkObjectType enumeration to the core API, promoted from
elink:VkDebugObjectTypeEXT, since it is used for much more than just the
debug_report extension.
New Extensions:
* `VK_KHR_get_surface_capabilities2`
* `VK_KHR_shared_presentable_image`
2017-05-12 08:37:16 +00:00
|
|
|
#define VK_KHR_get_surface_capabilities2 1
|
|
|
|
#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSurfaceKHR surface;
|
|
|
|
} VkPhysicalDeviceSurfaceInfo2KHR;
|
|
|
|
|
|
|
|
typedef struct VkSurfaceCapabilities2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkSurfaceCapabilitiesKHR surfaceCapabilities;
|
|
|
|
} VkSurfaceCapabilities2KHR;
|
|
|
|
|
|
|
|
typedef struct VkSurfaceFormat2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkSurfaceFormatKHR surfaceFormat;
|
|
|
|
} VkSurfaceFormat2KHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
|
|
|
VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
|
|
|
uint32_t* pSurfaceFormatCount,
|
|
|
|
VkSurfaceFormat2KHR* pSurfaceFormats);
|
|
|
|
#endif
|
|
|
|
|
2017-07-12 00:57:41 +00:00
|
|
|
#define VK_KHR_variable_pointers 1
|
|
|
|
#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceVariablePointerFeaturesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkBool32 variablePointersStorageBuffer;
|
|
|
|
VkBool32 variablePointers;
|
|
|
|
} VkPhysicalDeviceVariablePointerFeaturesKHR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_KHR_dedicated_allocation 1
|
Change log for August 14, 2017 Vulkan 1.0.58 spec update:
* Bump API patch number and header version number to 58 for this update.
Github Issues:
* Update the <<interfaces-resources-descset,Descriptor Set Interface>>
section to allow multiple variables with the same descriptor set/binding
decorations, and require that all variables that are statically used
must be consistent with the pipeline layout. Allow
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER to be used with texture
and sampler variables (public issues 522, 524).
Internal Issues:
* Replace networkx package used for extension dependency generation with a
homegrown network dependency traverser (internal issue 713).
* Specify in the <<interfaces-fragmentoutput, Fragment Output Interface>>
section that if a fragment shader writes integers that cannot be
represented in the format of the colour attachment, then the result is
undefined (internal issue 893).
* Separate malformed valid usage statement for
slink:VkPipelineRasterizationStateCreateInfo into two (internal issue
918).
* Fix cases where the term 'pNext chain' is incorrectly used in reference
to functions, rather than their parameters. Replace 'pNext list' with
'pNext chain'. Fixed typo in the example code of
+VK_KHR_dedicated_allocation+ (internal issue 944).
* Fix typo in elink:VkExternalSemaphoreHandleTypeFlagBitsKHR enum
descriptions, replacing
etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR with
ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR, and make the
description more consistent with
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR (internal issue 950).
Other Issues:
* Clarify how pipeline stage masks affect
<<synchronization-pipeline-stages-masks, access and synchronization
scopes>>.
* Clarify that dedicated allocations do not allow aliasing in the
flink:vkBindBufferMemory and flink:vkBindImageMemory valid usage
statements.
* Correct specification of pname:dynamicCount for push_constant token in
slink:VkIndirectCommandsLayoutNVX.
New Extensions:
* `VK_EXT_shader_viewport_index_layer`
2017-08-14 08:58:07 +00:00
|
|
|
#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
|
2017-07-12 00:57:41 +00:00
|
|
|
#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
|
|
|
|
|
|
|
|
typedef struct VkMemoryDedicatedRequirementsKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkBool32 prefersDedicatedAllocation;
|
|
|
|
VkBool32 requiresDedicatedAllocation;
|
|
|
|
} VkMemoryDedicatedRequirementsKHR;
|
|
|
|
|
|
|
|
typedef struct VkMemoryDedicatedAllocateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImage image;
|
|
|
|
VkBuffer buffer;
|
|
|
|
} VkMemoryDedicatedAllocateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_KHR_storage_buffer_storage_class 1
|
|
|
|
#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
|
|
|
|
|
|
|
|
|
2017-08-01 00:22:11 +00:00
|
|
|
#define VK_KHR_relaxed_block_layout 1
|
|
|
|
#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
|
|
|
|
|
|
|
|
|
2017-07-12 00:57:41 +00:00
|
|
|
#define VK_KHR_get_memory_requirements2 1
|
|
|
|
#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
|
|
|
|
|
|
|
|
typedef struct VkBufferMemoryRequirementsInfo2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBuffer buffer;
|
|
|
|
} VkBufferMemoryRequirementsInfo2KHR;
|
|
|
|
|
|
|
|
typedef struct VkImageMemoryRequirementsInfo2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImage image;
|
|
|
|
} VkImageMemoryRequirementsInfo2KHR;
|
|
|
|
|
|
|
|
typedef struct VkImageSparseMemoryRequirementsInfo2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImage image;
|
|
|
|
} VkImageSparseMemoryRequirementsInfo2KHR;
|
|
|
|
|
|
|
|
typedef struct VkMemoryRequirements2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkMemoryRequirements memoryRequirements;
|
|
|
|
} VkMemoryRequirements2KHR;
|
|
|
|
|
|
|
|
typedef struct VkSparseImageMemoryRequirements2KHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkSparseImageMemoryRequirements memoryRequirements;
|
|
|
|
} VkSparseImageMemoryRequirements2KHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkImageMemoryRequirementsInfo2KHR* pInfo,
|
|
|
|
VkMemoryRequirements2KHR* pMemoryRequirements);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkBufferMemoryRequirementsInfo2KHR* pInfo,
|
|
|
|
VkMemoryRequirements2KHR* pMemoryRequirements);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
|
|
|
|
uint32_t* pSparseMemoryRequirementCount,
|
|
|
|
VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements);
|
|
|
|
#endif
|
|
|
|
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
#define VK_KHR_image_format_list 1
|
|
|
|
#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
|
|
|
|
|
|
|
|
typedef struct VkImageFormatListCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t viewFormatCount;
|
|
|
|
const VkFormat* pViewFormats;
|
|
|
|
} VkImageFormatListCreateInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_KHR_sampler_ycbcr_conversion 1
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversionKHR)
|
|
|
|
|
|
|
|
#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkSamplerYcbcrModelConversionKHR {
|
|
|
|
VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
|
|
|
|
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
|
|
|
|
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
|
|
|
|
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
|
|
|
|
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
|
|
|
|
VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR,
|
|
|
|
VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR,
|
|
|
|
VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR + 1),
|
|
|
|
VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkSamplerYcbcrModelConversionKHR;
|
|
|
|
|
|
|
|
typedef enum VkSamplerYcbcrRangeKHR {
|
|
|
|
VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
|
|
|
|
VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
|
|
|
|
VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR,
|
|
|
|
VK_SAMPLER_YCBCR_RANGE_END_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR,
|
|
|
|
VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR - VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR + 1),
|
|
|
|
VK_SAMPLER_YCBCR_RANGE_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkSamplerYcbcrRangeKHR;
|
|
|
|
|
|
|
|
typedef enum VkChromaLocationKHR {
|
|
|
|
VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
|
|
|
|
VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
|
|
|
|
VK_CHROMA_LOCATION_BEGIN_RANGE_KHR = VK_CHROMA_LOCATION_COSITED_EVEN_KHR,
|
|
|
|
VK_CHROMA_LOCATION_END_RANGE_KHR = VK_CHROMA_LOCATION_MIDPOINT_KHR,
|
|
|
|
VK_CHROMA_LOCATION_RANGE_SIZE_KHR = (VK_CHROMA_LOCATION_MIDPOINT_KHR - VK_CHROMA_LOCATION_COSITED_EVEN_KHR + 1),
|
|
|
|
VK_CHROMA_LOCATION_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
|
} VkChromaLocationKHR;
|
|
|
|
|
|
|
|
typedef struct VkSamplerYcbcrConversionCreateInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkFormat format;
|
|
|
|
VkSamplerYcbcrModelConversionKHR ycbcrModel;
|
|
|
|
VkSamplerYcbcrRangeKHR ycbcrRange;
|
|
|
|
VkComponentMapping components;
|
|
|
|
VkChromaLocationKHR xChromaOffset;
|
|
|
|
VkChromaLocationKHR yChromaOffset;
|
|
|
|
VkFilter chromaFilter;
|
|
|
|
VkBool32 forceExplicitReconstruction;
|
|
|
|
} VkSamplerYcbcrConversionCreateInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkSamplerYcbcrConversionInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSamplerYcbcrConversionKHR conversion;
|
|
|
|
} VkSamplerYcbcrConversionInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkBindImagePlaneMemoryInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImageAspectFlagBits planeAspect;
|
|
|
|
} VkBindImagePlaneMemoryInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkImagePlaneMemoryRequirementsInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImageAspectFlagBits planeAspect;
|
|
|
|
} VkImagePlaneMemoryRequirementsInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkBool32 samplerYcbcrConversion;
|
|
|
|
} VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
|
|
|
|
|
|
|
|
typedef struct VkSamplerYcbcrConversionImageFormatPropertiesKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
uint32_t combinedImageSamplerDescriptorCount;
|
|
|
|
} VkSamplerYcbcrConversionImageFormatPropertiesKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversionKHR* pYcbcrConversion);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
|
|
|
|
VkDevice device,
|
|
|
|
const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSamplerYcbcrConversionKHR* pYcbcrConversion);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
|
|
|
|
VkDevice device,
|
|
|
|
VkSamplerYcbcrConversionKHR ycbcrConversion,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_KHR_bind_memory2 1
|
|
|
|
#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
|
|
|
|
#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
|
|
|
|
|
|
|
|
typedef struct VkBindBufferMemoryInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBuffer buffer;
|
|
|
|
VkDeviceMemory memory;
|
|
|
|
VkDeviceSize memoryOffset;
|
|
|
|
} VkBindBufferMemoryInfoKHR;
|
|
|
|
|
|
|
|
typedef struct VkBindImageMemoryInfoKHR {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImage image;
|
|
|
|
VkDeviceMemory memory;
|
|
|
|
VkDeviceSize memoryOffset;
|
|
|
|
} VkBindImageMemoryInfoKHR;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t bindInfoCount,
|
|
|
|
const VkBindBufferMemoryInfoKHR* pBindInfos);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t bindInfoCount,
|
|
|
|
const VkBindImageMemoryInfoKHR* pBindInfos);
|
|
|
|
#endif
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
#define VK_EXT_debug_report 1
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
|
|
|
|
Change log for October 20, 2017 Vulkan 1.0.64 spec update:
* Bump API patch number and header version number to 64 for this update.
Github Issues:
* Add chapter name to the PDF page footer (public pull request 458).
* Fix several mistaken references to the nonexistent etext:VK_DEVICE_LOST
status to etext:VK_ERROR_DEVICE_LOST (public pull request 502).
* Fix description of the tlink:PFN_vkDebugReportCallbackEXT debug report
callback function pointer to match the validation layer behavior (public
issue 534).
* Document experimental KHX extensions and alternate vendor author IDs
also ending in X in more detail in the <<extensions, Layers &
Extensions>> appendix, the extensions section of the style guide, and
the registry schema description document (public issues 536, 580).
* Fix references to ptext:pDepthStencil to properly refer to
pname:pDepthStencilState or pname:pRasterizationState as appropriate in
the slink:VkGraphicsPipelineCreateInfo description (public issue 542).
* Fix wrong parameter name in slink:VkPipelineMultisampleStateCreateInfo
valid usage (public pull request 571).
Internal Issues:
* Update the style guide to describe how to write LaTeX math expressions
in table cells (internal issue 908).
* Define how framebuffer-local dependencies work between subpasses with
the same or different numbers of samples, in the
slink:VkSubpassDescription and <<synchronization-framebuffer-regions,
Framebuffer Region Dependencies>> sections. This clarifies which samples
in an input attachment you are allowed to access after a
framebuffer-local dependency (internal issue 915).
* Specify which storage classes can have an initializer in the
<<spirvenv-module-validation, Validation Rules within a Module>> section
(internal issue 1023).
* Use "LOD" consistently for "level-of-detail", to eliminate spelling
inconsistencies. The term is already standardized in the Glossary
(internal issue 1027).
Other Issues:
* Fix false positives in Makefile dependencies when rules fail, by
deleting partially-made targets.
New Extensions:
* `VK_AMD_shader_info`
2017-10-21 00:18:37 +00:00
|
|
|
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
|
2016-02-16 09:53:44 +00:00
|
|
|
#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
|
Change log for May 20, 2017 Vulkan 1.0.50 spec update:
* Bump API patch number and header version number to 50 for this update.
Github Issues:
* Fix numerous minor issues with the VK_EXT_debug_report extension (public
issues 478, 483, 486, 489, 490).
Internal Issues:
* Update flink:vkAllocateDescriptorSets to specify conditions under which
to return ename:VK_ERROR_FRAGMENTED_POOL or
ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
out-of-host/out-of-device-memory, and improve the
<<fundamentals-errorcodes, description of those errors (internal issue
654).
* Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
a single semaphore, and how to deal with that when multiple physical
devices in a logical device need to wait on it (internal issue 730).
* Improve description of pname:pNext chains of
slink:VkPhysicalDeviceImageFormatInfo2KHR and
slink:VkImageFormatProperties2KHR (internal issue 814).
* Clean up math markup issues in the <<textures, Image Operations>>
chapter (internal issue 818).
* Update validusage target to use more robust code for preprocessing, by
making direct use of Asciidoctor's preprocessor. Added uniqueItems check
to JSON vu schema and add clean_validusage target (internal issue 826).
* Update style guide to prohibit writing non-self-contained (on a single
bullet point) Valid Usage statements, and modify offending Valid Usage
statements in the Specification to match, to assist with automatic
extraction for the validation layers (internal issue 828).
* Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
of the `VK_EXT_validation_flags` extension, to selectively disable
shader validation.
* Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
* Modify reflow.py script to place VUID tag anchors standalone on a line
following their corresponding bullet point, and reflow the spec text
accordingly (this had been pending since the initial tag deployment).
New Extensions:
* `VK_AMD_texture_gather_bias_lod`
2017-05-21 00:00:50 +00:00
|
|
|
#define VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkDebugReportObjectTypeEXT {
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
|
Change log for May 20, 2017 Vulkan 1.0.50 spec update:
* Bump API patch number and header version number to 50 for this update.
Github Issues:
* Fix numerous minor issues with the VK_EXT_debug_report extension (public
issues 478, 483, 486, 489, 490).
Internal Issues:
* Update flink:vkAllocateDescriptorSets to specify conditions under which
to return ename:VK_ERROR_FRAGMENTED_POOL or
ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
out-of-host/out-of-device-memory, and improve the
<<fundamentals-errorcodes, description of those errors (internal issue
654).
* Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
a single semaphore, and how to deal with that when multiple physical
devices in a logical device need to wait on it (internal issue 730).
* Improve description of pname:pNext chains of
slink:VkPhysicalDeviceImageFormatInfo2KHR and
slink:VkImageFormatProperties2KHR (internal issue 814).
* Clean up math markup issues in the <<textures, Image Operations>>
chapter (internal issue 818).
* Update validusage target to use more robust code for preprocessing, by
making direct use of Asciidoctor's preprocessor. Added uniqueItems check
to JSON vu schema and add clean_validusage target (internal issue 826).
* Update style guide to prohibit writing non-self-contained (on a single
bullet point) Valid Usage statements, and modify offending Valid Usage
statements in the Specification to match, to assist with automatic
extraction for the validation layers (internal issue 828).
* Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
of the `VK_EXT_validation_flags` extension, to selectively disable
shader validation.
* Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
* Modify reflow.py script to place VUID tag anchors standalone on a line
following their corresponding bullet point, and reflow the spec text
accordingly (this had been pending since the initial tag deployment).
New Extensions:
* `VK_AMD_texture_gather_bias_lod`
2017-05-21 00:00:50 +00:00
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
|
2016-12-11 04:59:58 +00:00
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
|
|
|
|
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,
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33,
|
2017-03-31 23:06:31 +00:00
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkDebugReportObjectTypeEXT;
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkDebugReportFlagBitsEXT {
|
|
|
|
VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
|
|
|
|
VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
|
|
|
|
VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
|
|
|
|
VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
|
|
|
|
VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
|
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.
2016-03-25 09:25:04 +00:00
|
|
|
VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkDebugReportFlagBitsEXT;
|
|
|
|
typedef VkFlags VkDebugReportFlagsEXT;
|
|
|
|
|
|
|
|
typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
|
|
|
|
VkDebugReportFlagsEXT flags,
|
|
|
|
VkDebugReportObjectTypeEXT objectType,
|
|
|
|
uint64_t object,
|
|
|
|
size_t location,
|
|
|
|
int32_t messageCode,
|
|
|
|
const char* pLayerPrefix,
|
|
|
|
const char* pMessage,
|
|
|
|
void* pUserData);
|
|
|
|
|
|
|
|
typedef struct VkDebugReportCallbackCreateInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDebugReportFlagsEXT flags;
|
|
|
|
PFN_vkDebugReportCallbackEXT pfnCallback;
|
|
|
|
void* pUserData;
|
|
|
|
} VkDebugReportCallbackCreateInfoEXT;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkDebugReportCallbackEXT* pCallback);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
|
|
|
|
VkInstance instance,
|
|
|
|
VkDebugReportCallbackEXT callback,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
|
|
|
|
VkInstance instance,
|
|
|
|
VkDebugReportFlagsEXT flags,
|
|
|
|
VkDebugReportObjectTypeEXT objectType,
|
|
|
|
uint64_t object,
|
|
|
|
size_t location,
|
|
|
|
int32_t messageCode,
|
|
|
|
const char* pLayerPrefix,
|
|
|
|
const char* pMessage);
|
|
|
|
#endif
|
|
|
|
|
Change log for March 4, 2016 Vulkan 1.0.5 spec update:
* Bump API patch number to 5 for this update.
Github Issues:
* Correctly describe slink:VkPhysicalDeviceProperties pname:deviceName
member as a string, not a pointer to a string. Also one typo fix for
"hetereogeneous" (public issue 4).
* Replace maynot: macro with may: not, and "may: or maynot:" with
"may:" (public issue 4).
* Clarify that redundantly setting the state of a fence or event has
no effect (public issue 4).
* Minor fixes to ref pages to track descriptions of memory bits that
changed in the core spec. Fix name of a member in the description of
sname:sname:VkPipelineMultisampleStateCreateInfo (public issues 8,
13).
* Remove redundant validity statement for
sname:VkGraphicsPipelineCreateInfo::pname:stageCount (public issue
14).
* Fix typos in chapters 7-9 (public issue 14).
* Clarify the example demonstrating the behavior of
code:OpMemoryBarrier in the
<<shaders-execution-memory-ordering,shader memory acces
ordering>> section (public issue 16).
* Specify that freeing mapped memory implicitly unmaps the memory in
the description of flink:vkFreeMemory (public issue 17).
* Forbid allocation callbacks from calling into the API in the
<<memory-allocation,memory allocation>> section (public issue
20).
* Add missing validity rules about size being greater than 0 and
offset being less than size of object. Fix
flink:VkMappedMemoryRange's misinterpretation of offset (public
issues 27, 31).
* Add validity rule disallowing overlapping source/destination
descriptors in flink:VkCopyDescriptorSet (public issue 32).
* Clarify that array and matrix stride has to be a multiple of the
base alignment of the array or matrix in the
<<interfaces-resources-layout,Offset and Stride Assignment>>
section (public issue 38).
* Correct parenthesis floor nesting error in equation for
<<textures-RGB-sexp,RGB to shared exponent conversion>>.
Clarify case of when exp' is forced to 0, avoiding log2(0) undefined
problem (public issue 40).
* Remove redundant statement from the code:FragDepth description in
the <<interfaces-builtin-variables,Built-In Variables>>
section (public issue 47).
* Define the clamping of the
<<textures-level-of-detail-operation,bias added to the scale
factor>> by linking to the slink:VkPhysicalDevice feature
pname:maxSamplerLodBias (public issue 64).
* Fix typo "optimal linear resources" and clarify the set of resources
<<features-limits-bufferImageGranularity,the
pname:bufferImageGranularity resource>> applies to (public issue
67).
* Replace 'descriptor accessed by a pipeline' language for
sname:VkDescriptorSetAllocateInfo with more precise phrasing about
binding a descriptor set before a command that invokes work using
that set (public issue 69).
* tstripadj.svg contained an Inkscape tag which caused Firefox and IE
11 to fail to render it, and was illegal SVG. Generating Plain SVG
from the Inkscape SVG source fixes this (public issue 70).
* Fix validity for sname:VkVertexInputBindingDescription and
sname:VkVertexInputAttributeDescription numbers (public issue 72).
Internal Issues:
* Clarify the meaning of
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in
elink:VkFormatFeatureFlagBits with respect to depth compare
(internal issue 107).
* Added a note explaining that ename:VK_QUEUE_TRANSFER_BIT may or may
not be reported for a queue family that already supports
ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT as the
former is a strict subset of the latter ones (internal issue 116).
* Add validity language for sname:VkDescriptorSetAllocateInfo about
exceeding the descriptor pool capacity (internal issue 140).
* Add ename:VK_INCOMPLETE success code for
flink:vkEnumeratePhysicalDevices query (internal issue 163).
Other Commits:
* Add the VK_NV_glsl_shader extension definitions to the API.
* Update GL_KHR_vulkan_glsl with 1) origin_upper_left as default 2)
specialization array constant semantics.
* Corrected/updated Data Format Specification date.
2016-03-03 13:06:18 +00:00
|
|
|
#define VK_NV_glsl_shader 1
|
|
|
|
#define VK_NV_GLSL_SHADER_SPEC_VERSION 1
|
|
|
|
#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
|
|
|
|
|
|
|
|
|
2017-07-21 23:30:07 +00:00
|
|
|
#define VK_EXT_depth_range_unrestricted 1
|
|
|
|
#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
|
|
|
|
|
|
|
|
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
#define VK_IMG_filter_cubic 1
|
|
|
|
#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
|
|
|
|
#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
|
|
|
|
|
|
|
|
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
#define VK_AMD_rasterization_order 1
|
|
|
|
#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkRasterizationOrderAMD {
|
|
|
|
VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
|
|
|
|
VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
|
|
|
|
VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
|
|
|
|
VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
|
|
|
|
VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
|
|
|
|
VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
|
|
|
|
} VkRasterizationOrderAMD;
|
|
|
|
|
|
|
|
typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkRasterizationOrderAMD rasterizationOrder;
|
|
|
|
} VkPipelineRasterizationStateRasterizationOrderAMD;
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-01 06:39:04 +00:00
|
|
|
#define VK_AMD_shader_trinary_minmax 1
|
|
|
|
#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_AMD_shader_explicit_vertex_parameter 1
|
|
|
|
#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
|
|
|
|
|
|
|
|
|
2016-05-07 00:06:56 +00:00
|
|
|
#define VK_EXT_debug_marker 1
|
Change log for February 10, 2017 Vulkan 1.0.40 spec update:
* Bump API patch number and header version number to 40 for this update.
* There is a major build change in this release. We are now using the
Ruby-based ``asciidoctor'' implementation, rather than the Python-based
``asciidoc'' implementation, to process the specification. While the
actual specification markup changes were minimal, this requires a new
set of build tools and a very different installation process, especially
because we now use an experimental direct-to-PDF backend for Asciidoctor
instead of Docbook->dblatex->PDF. It is no longer possible to build the
Specification using asciidoc. See doc/specs/vulkan/README.adoc
for some guidance on installing the new toolchain components.
* There are some minor rendering issues in the PDF output due to teething
problems with the asciidoctor toolchain, especially with mathematical
equations. We are aware of these and working on them.
Github Issues:
* Updated sample code for the <<sparsememory-examples-basic,sparse
resource binding example>> (public issue 97).
* Modify line and point clipping behavior in the
<<vertexpostproc-clipping, Primitive Clipping>> section to allow for
pop-free behavior. The ability to check for which behavior is
implemented may be added a future feature or extension (public issue
113).
* Unify the discussions of implicit ordering throughout the spec, in
particular in the new sections <<drawing-primitive-order, Primitive
Order>>, <<primrast-order, Rasterization Order>>, and
<<synchronization-implicit, Implicit Synchronization Guarantees>>; the
discussion of <<synchronization-submission-order, submission order>>;
and references elsewhere to these sections (public issue 133).
* Clarify \<\<descriptorsets-compatibility,Pipeline Layout Compatibility>>
language and introduce the term ``identically defined'' (public issue
164).
* Add a dependency to the +VK_EXT_debug_marker+ extension that's needed to
reuse the object type enum from +VK_EXT_debug_report+, and moves the
definition of that enum into +VK_EXT_debug_report+ where it should be
(public issue 409).
* Remove redundant valid usage statement from slink:VkImageBlit (public
issue 421).
* Update GL_KHR_vulkan_glsl to allow the ternary operator to result in a
specialization constant (public issue 424).
* Fix valid usage for flink:VkPipelineShaderStageCreateInfo (public issue
426).
* Correct typo in New Objects list for <<VK_EXT_debug_report>> (public
issue 447).
Internal Issues:
* Moved to asciidoctor for spec builds (internal issue 121).
* Update style guide to describe where to put new extensions-specific
asciidoc files, and what to name them (internal issue 626).
* Add src/spec/indexExt.py to autogenerate registry index entries linking
into the 1.0-extensions specification, instead of maintaining the index
manually. (internal issue 642).
* Autogenerate extension dependencies and lists of all extensions and all
KHR extensions from the "supported" attributes in +vk.xml+. Execute
+make config/extDependency.sh+ from +doc/specs/vulkan+ when a supported
extension is added to vk.xml, to regenerate the dependency script. The
consequence is that specifying a single extension to the +makeExt+
script will automatically enable all extensions it depends on as well,
and that the +makeAllExts+ and +makeKHR+ scripts do not need to be
updated when a new extension is supported (internal issue 648).
* Put extension appendices all at the same asciidoc section level, so KHR
WSI extensions show up in the HTML index (internal issue 648).
Other Issues:
* Imbed images in the generated HTML specs instead of loading them from
the images/ directory.
* Fix missing EXT in extension name
(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
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
glossary term defining it.
* Relocate the valid usage for samples of
flink:vkGetPhysicalDeviceSparseImageFormatProperties2KHR::pname:pFormatInfo
to be below the flink:VkPhysicalDeviceSparseImageFormatInfo2KHR
structure.
2017-02-11 04:37:39 +00:00
|
|
|
#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
|
2016-05-07 00:06:56 +00:00
|
|
|
#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
|
|
|
|
|
|
|
|
typedef struct VkDebugMarkerObjectNameInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDebugReportObjectTypeEXT objectType;
|
|
|
|
uint64_t object;
|
|
|
|
const char* pObjectName;
|
|
|
|
} VkDebugMarkerObjectNameInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkDebugMarkerObjectTagInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDebugReportObjectTypeEXT objectType;
|
|
|
|
uint64_t object;
|
|
|
|
uint64_t tagName;
|
|
|
|
size_t tagSize;
|
|
|
|
const void* pTag;
|
|
|
|
} VkDebugMarkerObjectTagInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkDebugMarkerMarkerInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
const char* pMarkerName;
|
|
|
|
float color[4];
|
|
|
|
} VkDebugMarkerMarkerInfoEXT;
|
|
|
|
|
|
|
|
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
2016-05-07 00:06:56 +00:00
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
2016-05-07 00:06:56 +00:00
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
|
|
|
|
VkDevice device,
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
2016-05-07 00:06:56 +00:00
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
|
|
|
|
VkDevice device,
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
2016-05-07 00:06:56 +00:00
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
|
|
|
|
VkCommandBuffer commandBuffer,
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
2016-05-07 00:06:56 +00:00
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
|
|
|
|
VkCommandBuffer commandBuffer);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
|
|
|
|
VkCommandBuffer commandBuffer,
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
2016-05-07 00:06:56 +00:00
|
|
|
#endif
|
|
|
|
|
2016-06-01 06:39:04 +00:00
|
|
|
#define VK_AMD_gcn_shader 1
|
|
|
|
#define VK_AMD_GCN_SHADER_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
|
|
|
|
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
#define VK_NV_dedicated_allocation 1
|
|
|
|
#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
|
|
|
|
#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
|
|
|
|
|
|
|
|
typedef struct VkDedicatedAllocationImageCreateInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBool32 dedicatedAllocation;
|
|
|
|
} VkDedicatedAllocationImageCreateInfoNV;
|
|
|
|
|
|
|
|
typedef struct VkDedicatedAllocationBufferCreateInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBool32 dedicatedAllocation;
|
|
|
|
} VkDedicatedAllocationBufferCreateInfoNV;
|
|
|
|
|
|
|
|
typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkImage image;
|
|
|
|
VkBuffer buffer;
|
|
|
|
} VkDedicatedAllocationMemoryAllocateInfoNV;
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-28 10:47:19 +00:00
|
|
|
#define VK_AMD_draw_indirect_count 1
|
Change log for September 23, 2016 Vulkan 1.0.28 spec update:
* Bump API patch number and header version number to 28 for this update.
Github Issues:
* Minor spelling and typography cleanup, add definitions of
ename:VK_FALSE and ename:VK_TRUE as just what their names say
(public issues 220, 318, 325, 365; internal issues 451, 496)
* Clarify that the pname:maxDescriptorSet limits in the
<<features-limits-required,Required Limits>> table are n *
maxPerStage limit (where n=number of supported stages) (public issue
254).
* Minor cleanup to <<boilerplate-platform-macros,Platform-Specific
Macro Definitions>> appendix (public issue 314).
* Add valid usage statement to slink:VkPipelineLayoutCreateInfo
disallowing multiple push constant ranges for the same shader stage
(public issue 340).
* Clarify the elink:VkSharingMode description of what executing the
"same" barriers means in case of ownership transfer (public issue
347).
* Rename copyright.txt and add COPYING.md to try and reduce confusion
about applicable copyrights (public issue 350).
* Extend the table in the <<boilerplate-wsi-header, Window System-Specific
Header Control>> section to describe the external headers included when
each etext:VK_USE_PLATFORM_* macro is defined (public issue 376).
Internal Issues:
* Add "Revision History" to the PDF outputs following the table of
contents, to match HTML outputs (internal issue 43).
* Clarified that flink:vkMapMemory may fail due to virtual address
space limitations (internal issue 346).
* Add +refBody+ comment markup for ref page autoextraction when required
(internal issue 400).
* Document proper use of "mipmap" and "mip" in the style guide API
naming rules, matching the spelling rules (internal issue 471).
* Tweak the <<extensions,Layers and Extensions>> appendix to note that
the Specification may be built with arbitrary combinations of
extensions (internal issue 483).
* Remove incorrect statement allowing
slink:VkClearAttachment::pname:colorAttachment to be >=
slink:VkSubpassDescription::pname:colorAttachmentCount (internal
issue 488).
* The <<features-limits-viewportboundsrange,viewportBoundsRange>> is
expressed in terms of the pname:maxViewportDimensions but this is
actually two values. Clarify that it's based on the larger of the two
(if they differ) (internal issue 499).
Other Issues:
* Reflowed text of the entire spec using the 'reflow' Makefile gater,
to (hopefully) reduce future internal git churn as edits are made
and extensions added in return for one-time pain. This has no
perceptible change on the spec outputs but considerable changes on
the asciidoc source (internal issue 367).
2016-09-24 07:58:11 +00:00
|
|
|
#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
|
2016-08-28 10:47:19 +00:00
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer buffer,
|
|
|
|
VkDeviceSize offset,
|
|
|
|
VkBuffer countBuffer,
|
|
|
|
VkDeviceSize countBufferOffset,
|
|
|
|
uint32_t maxDrawCount,
|
|
|
|
uint32_t stride);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkBuffer buffer,
|
|
|
|
VkDeviceSize offset,
|
|
|
|
VkBuffer countBuffer,
|
|
|
|
VkDeviceSize countBufferOffset,
|
|
|
|
uint32_t maxDrawCount,
|
|
|
|
uint32_t stride);
|
|
|
|
#endif
|
|
|
|
|
2016-09-17 04:22:17 +00:00
|
|
|
#define VK_AMD_negative_viewport_height 1
|
2016-10-25 05:22:26 +00:00
|
|
|
#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
|
Change log for September 30, 2016 Vulkan 1.0.29 spec update:
* Bump API patch number and header version number to 29 for this update.
Github Issues:
* Remove redundant constraint on
slink:VkCommandBufferInheritanceInfo::pname:queryFlags (public issue
224).
* Fix typo and remove link in Note in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (public issue 359).
* Fix erroneous validation statement for the pname:layout member of
slink:VkComputePipelineCreateInfo (public issue 362).
Internal Issues:
* Restore long figure captions using asciidoc sidebar blocks, due to
restrictions of asciidoc syntax (internal issue 101).
* Replace most latexmath equations with comparable markup in straight
asciidoc, which significantly improves time required to fully load and
process the HTML forms of the Specification. There are known minor font
and alignment inconsistencies with MathJax and PDF rendering of
latexmath equations. Please do not file github issues about these. We
are aware of the inconsistencies and will make refinements over time,
while the performance improvements are compelling in at least some major
browsers (internal issue 313).
* Move handcoded validity statements from +vk.xml+ into the Specification
body, easing work in the single-branch model. Specify the distinction
between these explicit statements, and the implicit validity statements
inferred from vk.xml. Validity statements now appear in two blocks for
each command and structure - handcoded "Valid Usage" and the implicit
"Valid Usage (Implicit)" (internal issue 392).
* Add the +returnedonly="false"+ attribute to WSI output structures,
removing incorrectly generated implicit validity statements for
slink:VkDisplayPropertiesKHR, slink:VkDisplayPlanePropertiesKHR,
slink:VkDisplayModePropertiesKHR, slink:VkDisplayPlaneCapabilitiesKHR,
slink:VkSurfaceCapabilitiesKHR, and slink:VkSurfaceFormatKHR structures
(internal issue 486).
* Update slink:VkImageLayout to require the
ename:VK_IMAGE_USAGE_SAMPLED_BIT be set for sampled depth/stencil images
(internal issue 487).
* Use an explicit format specifier string for the date command invocation
in the +Makefile+ instead of the shorthand -R option, which doesn't work
on BSD and MaxOS X date commands (internal issue 500).
Other Issues:
* Use the terms ``allocation scope'' and ``extension scope'' instead of
just ``scope'', and add them to the glossary.
2016-10-01 04:13:37 +00:00
|
|
|
#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
|
2016-09-17 04:22:17 +00:00
|
|
|
|
|
|
|
|
Change log for September 23, 2016 Vulkan 1.0.28 spec update:
* Bump API patch number and header version number to 28 for this update.
Github Issues:
* Minor spelling and typography cleanup, add definitions of
ename:VK_FALSE and ename:VK_TRUE as just what their names say
(public issues 220, 318, 325, 365; internal issues 451, 496)
* Clarify that the pname:maxDescriptorSet limits in the
<<features-limits-required,Required Limits>> table are n *
maxPerStage limit (where n=number of supported stages) (public issue
254).
* Minor cleanup to <<boilerplate-platform-macros,Platform-Specific
Macro Definitions>> appendix (public issue 314).
* Add valid usage statement to slink:VkPipelineLayoutCreateInfo
disallowing multiple push constant ranges for the same shader stage
(public issue 340).
* Clarify the elink:VkSharingMode description of what executing the
"same" barriers means in case of ownership transfer (public issue
347).
* Rename copyright.txt and add COPYING.md to try and reduce confusion
about applicable copyrights (public issue 350).
* Extend the table in the <<boilerplate-wsi-header, Window System-Specific
Header Control>> section to describe the external headers included when
each etext:VK_USE_PLATFORM_* macro is defined (public issue 376).
Internal Issues:
* Add "Revision History" to the PDF outputs following the table of
contents, to match HTML outputs (internal issue 43).
* Clarified that flink:vkMapMemory may fail due to virtual address
space limitations (internal issue 346).
* Add +refBody+ comment markup for ref page autoextraction when required
(internal issue 400).
* Document proper use of "mipmap" and "mip" in the style guide API
naming rules, matching the spelling rules (internal issue 471).
* Tweak the <<extensions,Layers and Extensions>> appendix to note that
the Specification may be built with arbitrary combinations of
extensions (internal issue 483).
* Remove incorrect statement allowing
slink:VkClearAttachment::pname:colorAttachment to be >=
slink:VkSubpassDescription::pname:colorAttachmentCount (internal
issue 488).
* The <<features-limits-viewportboundsrange,viewportBoundsRange>> is
expressed in terms of the pname:maxViewportDimensions but this is
actually two values. Clarify that it's based on the larger of the two
(if they differ) (internal issue 499).
Other Issues:
* Reflowed text of the entire spec using the 'reflow' Makefile gater,
to (hopefully) reduce future internal git churn as edits are made
and extensions added in return for one-time pain. This has no
perceptible change on the spec outputs but considerable changes on
the asciidoc source (internal issue 367).
2016-09-24 07:58:11 +00:00
|
|
|
#define VK_AMD_gpu_shader_half_float 1
|
|
|
|
#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_AMD_shader_ballot 1
|
2016-10-25 05:22:26 +00:00
|
|
|
#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
|
Change log for September 30, 2016 Vulkan 1.0.29 spec update:
* Bump API patch number and header version number to 29 for this update.
Github Issues:
* Remove redundant constraint on
slink:VkCommandBufferInheritanceInfo::pname:queryFlags (public issue
224).
* Fix typo and remove link in Note in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section (public issue 359).
* Fix erroneous validation statement for the pname:layout member of
slink:VkComputePipelineCreateInfo (public issue 362).
Internal Issues:
* Restore long figure captions using asciidoc sidebar blocks, due to
restrictions of asciidoc syntax (internal issue 101).
* Replace most latexmath equations with comparable markup in straight
asciidoc, which significantly improves time required to fully load and
process the HTML forms of the Specification. There are known minor font
and alignment inconsistencies with MathJax and PDF rendering of
latexmath equations. Please do not file github issues about these. We
are aware of the inconsistencies and will make refinements over time,
while the performance improvements are compelling in at least some major
browsers (internal issue 313).
* Move handcoded validity statements from +vk.xml+ into the Specification
body, easing work in the single-branch model. Specify the distinction
between these explicit statements, and the implicit validity statements
inferred from vk.xml. Validity statements now appear in two blocks for
each command and structure - handcoded "Valid Usage" and the implicit
"Valid Usage (Implicit)" (internal issue 392).
* Add the +returnedonly="false"+ attribute to WSI output structures,
removing incorrectly generated implicit validity statements for
slink:VkDisplayPropertiesKHR, slink:VkDisplayPlanePropertiesKHR,
slink:VkDisplayModePropertiesKHR, slink:VkDisplayPlaneCapabilitiesKHR,
slink:VkSurfaceCapabilitiesKHR, and slink:VkSurfaceFormatKHR structures
(internal issue 486).
* Update slink:VkImageLayout to require the
ename:VK_IMAGE_USAGE_SAMPLED_BIT be set for sampled depth/stencil images
(internal issue 487).
* Use an explicit format specifier string for the date command invocation
in the +Makefile+ instead of the shorthand -R option, which doesn't work
on BSD and MaxOS X date commands (internal issue 500).
Other Issues:
* Use the terms ``allocation scope'' and ``extension scope'' instead of
just ``scope'', and add them to the glossary.
2016-10-01 04:13:37 +00:00
|
|
|
#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
|
Change log for September 23, 2016 Vulkan 1.0.28 spec update:
* Bump API patch number and header version number to 28 for this update.
Github Issues:
* Minor spelling and typography cleanup, add definitions of
ename:VK_FALSE and ename:VK_TRUE as just what their names say
(public issues 220, 318, 325, 365; internal issues 451, 496)
* Clarify that the pname:maxDescriptorSet limits in the
<<features-limits-required,Required Limits>> table are n *
maxPerStage limit (where n=number of supported stages) (public issue
254).
* Minor cleanup to <<boilerplate-platform-macros,Platform-Specific
Macro Definitions>> appendix (public issue 314).
* Add valid usage statement to slink:VkPipelineLayoutCreateInfo
disallowing multiple push constant ranges for the same shader stage
(public issue 340).
* Clarify the elink:VkSharingMode description of what executing the
"same" barriers means in case of ownership transfer (public issue
347).
* Rename copyright.txt and add COPYING.md to try and reduce confusion
about applicable copyrights (public issue 350).
* Extend the table in the <<boilerplate-wsi-header, Window System-Specific
Header Control>> section to describe the external headers included when
each etext:VK_USE_PLATFORM_* macro is defined (public issue 376).
Internal Issues:
* Add "Revision History" to the PDF outputs following the table of
contents, to match HTML outputs (internal issue 43).
* Clarified that flink:vkMapMemory may fail due to virtual address
space limitations (internal issue 346).
* Add +refBody+ comment markup for ref page autoextraction when required
(internal issue 400).
* Document proper use of "mipmap" and "mip" in the style guide API
naming rules, matching the spelling rules (internal issue 471).
* Tweak the <<extensions,Layers and Extensions>> appendix to note that
the Specification may be built with arbitrary combinations of
extensions (internal issue 483).
* Remove incorrect statement allowing
slink:VkClearAttachment::pname:colorAttachment to be >=
slink:VkSubpassDescription::pname:colorAttachmentCount (internal
issue 488).
* The <<features-limits-viewportboundsrange,viewportBoundsRange>> is
expressed in terms of the pname:maxViewportDimensions but this is
actually two values. Clarify that it's based on the larger of the two
(if they differ) (internal issue 499).
Other Issues:
* Reflowed text of the entire spec using the 'reflow' Makefile gater,
to (hopefully) reduce future internal git churn as edits are made
and extensions added in return for one-time pain. This has no
perceptible change on the spec outputs but considerable changes on
the asciidoc source (internal issue 367).
2016-09-24 07:58:11 +00:00
|
|
|
|
|
|
|
|
Change log for May 20, 2017 Vulkan 1.0.50 spec update:
* Bump API patch number and header version number to 50 for this update.
Github Issues:
* Fix numerous minor issues with the VK_EXT_debug_report extension (public
issues 478, 483, 486, 489, 490).
Internal Issues:
* Update flink:vkAllocateDescriptorSets to specify conditions under which
to return ename:VK_ERROR_FRAGMENTED_POOL or
ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
out-of-host/out-of-device-memory, and improve the
<<fundamentals-errorcodes, description of those errors (internal issue
654).
* Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
a single semaphore, and how to deal with that when multiple physical
devices in a logical device need to wait on it (internal issue 730).
* Improve description of pname:pNext chains of
slink:VkPhysicalDeviceImageFormatInfo2KHR and
slink:VkImageFormatProperties2KHR (internal issue 814).
* Clean up math markup issues in the <<textures, Image Operations>>
chapter (internal issue 818).
* Update validusage target to use more robust code for preprocessing, by
making direct use of Asciidoctor's preprocessor. Added uniqueItems check
to JSON vu schema and add clean_validusage target (internal issue 826).
* Update style guide to prohibit writing non-self-contained (on a single
bullet point) Valid Usage statements, and modify offending Valid Usage
statements in the Specification to match, to assist with automatic
extraction for the validation layers (internal issue 828).
* Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
of the `VK_EXT_validation_flags` extension, to selectively disable
shader validation.
* Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
* Modify reflow.py script to place VUID tag anchors standalone on a line
following their corresponding bullet point, and reflow the spec text
accordingly (this had been pending since the initial tag deployment).
New Extensions:
* `VK_AMD_texture_gather_bias_lod`
2017-05-21 00:00:50 +00:00
|
|
|
#define VK_AMD_texture_gather_bias_lod 1
|
|
|
|
#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
|
|
|
|
|
|
|
|
typedef struct VkTextureLODGatherFormatPropertiesAMD {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkBool32 supportsTextureGatherLODBiasAMD;
|
|
|
|
} VkTextureLODGatherFormatPropertiesAMD;
|
|
|
|
|
|
|
|
|
|
|
|
|
Change log for October 20, 2017 Vulkan 1.0.64 spec update:
* Bump API patch number and header version number to 64 for this update.
Github Issues:
* Add chapter name to the PDF page footer (public pull request 458).
* Fix several mistaken references to the nonexistent etext:VK_DEVICE_LOST
status to etext:VK_ERROR_DEVICE_LOST (public pull request 502).
* Fix description of the tlink:PFN_vkDebugReportCallbackEXT debug report
callback function pointer to match the validation layer behavior (public
issue 534).
* Document experimental KHX extensions and alternate vendor author IDs
also ending in X in more detail in the <<extensions, Layers &
Extensions>> appendix, the extensions section of the style guide, and
the registry schema description document (public issues 536, 580).
* Fix references to ptext:pDepthStencil to properly refer to
pname:pDepthStencilState or pname:pRasterizationState as appropriate in
the slink:VkGraphicsPipelineCreateInfo description (public issue 542).
* Fix wrong parameter name in slink:VkPipelineMultisampleStateCreateInfo
valid usage (public pull request 571).
Internal Issues:
* Update the style guide to describe how to write LaTeX math expressions
in table cells (internal issue 908).
* Define how framebuffer-local dependencies work between subpasses with
the same or different numbers of samples, in the
slink:VkSubpassDescription and <<synchronization-framebuffer-regions,
Framebuffer Region Dependencies>> sections. This clarifies which samples
in an input attachment you are allowed to access after a
framebuffer-local dependency (internal issue 915).
* Specify which storage classes can have an initializer in the
<<spirvenv-module-validation, Validation Rules within a Module>> section
(internal issue 1023).
* Use "LOD" consistently for "level-of-detail", to eliminate spelling
inconsistencies. The term is already standardized in the Glossary
(internal issue 1027).
Other Issues:
* Fix false positives in Makefile dependencies when rules fail, by
deleting partially-made targets.
New Extensions:
* `VK_AMD_shader_info`
2017-10-21 00:18:37 +00:00
|
|
|
#define VK_AMD_shader_info 1
|
|
|
|
#define VK_AMD_SHADER_INFO_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkShaderInfoTypeAMD {
|
|
|
|
VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
|
|
|
|
VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
|
|
|
|
VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
|
|
|
|
VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
|
|
|
|
VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD,
|
|
|
|
VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1),
|
|
|
|
VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
|
|
|
|
} VkShaderInfoTypeAMD;
|
|
|
|
|
|
|
|
typedef struct VkShaderResourceUsageAMD {
|
|
|
|
uint32_t numUsedVgprs;
|
|
|
|
uint32_t numUsedSgprs;
|
|
|
|
uint32_t ldsSizePerLocalWorkGroup;
|
|
|
|
size_t ldsUsageSizeInBytes;
|
|
|
|
size_t scratchMemUsageInBytes;
|
|
|
|
} VkShaderResourceUsageAMD;
|
|
|
|
|
|
|
|
typedef struct VkShaderStatisticsInfoAMD {
|
|
|
|
VkShaderStageFlags shaderStageMask;
|
|
|
|
VkShaderResourceUsageAMD resourceUsage;
|
|
|
|
uint32_t numPhysicalVgprs;
|
|
|
|
uint32_t numPhysicalSgprs;
|
|
|
|
uint32_t numAvailableVgprs;
|
|
|
|
uint32_t numAvailableSgprs;
|
|
|
|
uint32_t computeWorkGroupSize[3];
|
|
|
|
} VkShaderStatisticsInfoAMD;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
|
|
|
|
VkDevice device,
|
|
|
|
VkPipeline pipeline,
|
|
|
|
VkShaderStageFlagBits shaderStage,
|
|
|
|
VkShaderInfoTypeAMD infoType,
|
|
|
|
size_t* pInfoSize,
|
|
|
|
void* pInfo);
|
|
|
|
#endif
|
|
|
|
|
Change log for October 6, 2017 Vulkan 1.0.62 spec update:
* Bump API patch number and header version number to 62 for this update.
Github Issues:
* Move asciidoc conditionals for `VK_KHR_maintenance1` in
slink:VkDescriptorSetAllocateInfo so valid usage statements for
`VK_KHR_push_descriptor` aren't accidentally removed when the first
extension isn't enabled (public issue 573).
* Fixed errors in API example code for
flink:vkUpdateDescriptorSetWithTemplateKHR and
flink:vkCmdPushDescriptorSetWithTemplateKHR (public issue 577).
Internal Issues:
* Specify constraints on concurrent access to fences that share payload in
the <<synchronization-fences-importing, Importing Fence Payloads>> and
<<synchronization-semaphores-waiting-state, Semaphore State Requirements
For Wait Operations>> sections (internal issue 820).
* Define the term "`retired swapchain`", reorganize some swapchain
language, and improve language for pname:oldSwapchain in
flink:VkSwapchainCreateInfoKHR, the <<swapchain-wsi-image-create-info>>
table, flink:vkDestroySwapchainKHR, and flink:vkAcquireNextImage2KHX
(internal issue 869).
* Describe in the <<writing-arrays, Describing Properties of Array
Elements>> section of the style guide how and when to use "`each`" and
"`any`" to refer to properties of array elements, and make those uses in
the specification consistent (internal issue 884).
* Clarified that events cannot be used for cross-queue synchronization in
the <<synchronization-events, Events>> section and for
flink:vkCmdWaitEvents (internal issue 970).
* Add success and error codes to +vk.xml+ for
flink:vkCreateValidationCacheEXT (internal issue 995).
* Clarify aspect mask usage for image memory barriers of multi-plane
images in slink:VkImageSubresourceRange, slink:VkImageMemoryBarrier, and
the <<textures-layout-validation, Layout Validation>> section (internal
issue 996).
Other Issues:
* Fixed typo in flink:VkRenderPassSampleLocationsBeginInfoEXT (renamed
field pname:pSubpassSampleLocations to
pname:pPostSubpassSampleLocations).
* Add missing buffer usage requirements for indirect draws in
flink:vkCmdDrawIndirect, flink:vkCmdDrawIndirectCountAMD,
flink:vkCmdDrawIndexedIndirect, and
flink:vlCmdDrawIndexedIndirectCountAMD.
* Modify Makefile to allow specification to build in git "`detached HEAD`"
state.
* Update valid usage ID generation script to allow recursively operating
on all `.txt` files in a specified directory, and move the `startVUID`
tracking information into a separate python file that is automatically
updated by the script.
New Extensions:
* Add +vk.xml+ entries for pending `VK_ANDROID_native_buffer` extension
(note, this extension is not yet enabled).
* `VK_AMD_shader_image_load_store_lod`
2017-10-07 04:51:59 +00:00
|
|
|
#define VK_AMD_shader_image_load_store_lod 1
|
|
|
|
#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
|
|
|
|
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#define VK_KHX_multiview 1
|
|
|
|
#define VK_KHX_MULTIVIEW_SPEC_VERSION 1
|
|
|
|
#define VK_KHX_MULTIVIEW_EXTENSION_NAME "VK_KHX_multiview"
|
|
|
|
|
|
|
|
typedef struct VkRenderPassMultiviewCreateInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t subpassCount;
|
|
|
|
const uint32_t* pViewMasks;
|
|
|
|
uint32_t dependencyCount;
|
|
|
|
const int32_t* pViewOffsets;
|
|
|
|
uint32_t correlationMaskCount;
|
|
|
|
const uint32_t* pCorrelationMasks;
|
|
|
|
} VkRenderPassMultiviewCreateInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceMultiviewFeaturesKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkBool32 multiview;
|
|
|
|
VkBool32 multiviewGeometryShader;
|
|
|
|
VkBool32 multiviewTessellationShader;
|
|
|
|
} VkPhysicalDeviceMultiviewFeaturesKHX;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceMultiviewPropertiesKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
uint32_t maxMultiviewViewCount;
|
|
|
|
uint32_t maxMultiviewInstanceIndex;
|
|
|
|
} VkPhysicalDeviceMultiviewPropertiesKHX;
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 11:25:36 +00:00
|
|
|
#define VK_IMG_format_pvrtc 1
|
|
|
|
#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
|
|
|
|
#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
|
|
|
|
|
|
|
|
|
2016-08-28 10:47:19 +00:00
|
|
|
#define VK_NV_external_memory_capabilities 1
|
|
|
|
#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
|
|
|
|
#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
|
|
|
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
|
|
|
|
} VkExternalMemoryHandleTypeFlagBitsNV;
|
Change log for September 6, 2016 Vulkan 1.0.26 spec update:
* Bump API patch number and header version number to 26 for this update.
Github Issues:
* 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).
* Add a new <<fundamentals-commandsyntax-results-lifetime,Lifetime of
Retrieved Results>> section specifying that ftext:vkGet* and
ftext:VkEnumerate* results are invariant unless otherwise specified, and
specify behavior for individual commands which are not invariant (public
issue 280).
* Remove conflicting definition of
slink:VkDisplayPlaneCapabilitiesKHR::pname:maxSrcPosition and clean up
language of the remaining definition (public issue 351).
* Fix many minor spelling errors and add rules to the style guide to
prevent recurrences (public issue 352).
Internal Issues:
* Remove redundant descriptions of the etext:VK_USE_PLATFORM_* macros from
the <<wsi,Window System Integration>> chapter in favor of the
description in the <<boilerplate-wsi-header,Window System-Specific
Header Control>> appendix (internal issue 6).
* Replace misleading 'can: be destroyed when not X' with more correct
'must: not be destroyed while X' in the
<<fundamentals-objectmodel-lifetime,Object Lifetime>> section. Disallow
destroying a pipeline layout while a command buffer using it is
recording (internal issue 241).
* Clarify that ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT is valid for
all images used as attachments in elink:VkImageUsageFlagBits and the
slink:VkImageLayout validity language (internal issue 320).
* Note that <<extended-functionality-layers,Layers>> may wrap object
handles, but that this is a generally discouraged. A link to additional
information in the documentation for layer authors is provided (issue
398)
* Replace the mustnot: and shouldnot: macros with equivalent must: not and
should: not to get rid of non-English words while still highlighting
normative language (internal issue 407).
* Disallow creating multisampled images with
ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT in the slink:VkImageLayout
validity language and the <<features-supported-sample-counts,Supported
Sample Counts>> section (internal issue 445).
* Fix typo so that flink:vkCmdDrawIndexedIndirect is defined in terms of
flink:vkCmdDrawIndexed rather than flink:vkCmdDrawIndirect (internal
issue 446).
* Reorganize the per-extension information sections to all be in the
<<extensions,Layers & Extensions>> appendix. Also fix a typo in
+VK_IMG_filter_cubic+ which incorrectly identified it as a +KHR+
extension (internal issue 461).
Other Issues:
* Use asciidoc markup instead of latexmath to simplify diagrams in the
<<features-formats-non-packed,byte mapping tables>> for color formats.
* Fix a markup problem with the wildcarded enumerant names in a NOTE in
the <<textures-texel-replacement,Texel Replacement>> section.
* Fix missing attributes in the XML interface for
elink:VkExternalMemoryHandleTypeFlagBitsNV and
elink:VkExternalMemoryFeatureFlagBitsNV (KhronosGroup/Vulkan-Hpp issue
#25)
* Cleanup reference page builds so only core pages are built for releases.
2016-09-06 13:17:27 +00:00
|
|
|
typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
|
2016-08-28 10:47:19 +00:00
|
|
|
|
|
|
|
typedef enum VkExternalMemoryFeatureFlagBitsNV {
|
|
|
|
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
|
|
|
|
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
|
|
|
|
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
|
|
|
|
VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
|
|
|
|
} VkExternalMemoryFeatureFlagBitsNV;
|
|
|
|
typedef VkFlags VkExternalMemoryFeatureFlagsNV;
|
|
|
|
|
|
|
|
typedef struct VkExternalImageFormatPropertiesNV {
|
|
|
|
VkImageFormatProperties imageFormatProperties;
|
|
|
|
VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
|
|
|
|
VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
|
|
|
|
VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
|
|
|
|
} VkExternalImageFormatPropertiesNV;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkFormat format,
|
|
|
|
VkImageType type,
|
|
|
|
VkImageTiling tiling,
|
|
|
|
VkImageUsageFlags usage,
|
|
|
|
VkImageCreateFlags flags,
|
|
|
|
VkExternalMemoryHandleTypeFlagsNV externalHandleType,
|
|
|
|
VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_NV_external_memory 1
|
|
|
|
#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
|
|
|
|
#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
|
|
|
|
|
|
|
|
typedef struct VkExternalMemoryImageCreateInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagsNV handleTypes;
|
|
|
|
} VkExternalMemoryImageCreateInfoNV;
|
|
|
|
|
|
|
|
typedef struct VkExportMemoryAllocateInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagsNV handleTypes;
|
|
|
|
} VkExportMemoryAllocateInfoNV;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
#define VK_NV_external_memory_win32 1
|
|
|
|
#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
|
|
|
|
#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
|
|
|
|
|
|
|
|
typedef struct VkImportMemoryWin32HandleInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagsNV handleType;
|
|
|
|
HANDLE handle;
|
|
|
|
} VkImportMemoryWin32HandleInfoNV;
|
|
|
|
|
|
|
|
typedef struct VkExportMemoryWin32HandleInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
const SECURITY_ATTRIBUTES* pAttributes;
|
|
|
|
DWORD dwAccess;
|
|
|
|
} VkExportMemoryWin32HandleInfoNV;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
|
|
|
|
VkDevice device,
|
|
|
|
VkDeviceMemory memory,
|
|
|
|
VkExternalMemoryHandleTypeFlagsNV handleType,
|
|
|
|
HANDLE* pHandle);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
#define VK_NV_win32_keyed_mutex 1
|
|
|
|
#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
|
|
|
|
#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
|
|
|
|
|
|
|
|
typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t acquireCount;
|
|
|
|
const VkDeviceMemory* pAcquireSyncs;
|
|
|
|
const uint64_t* pAcquireKeys;
|
|
|
|
const uint32_t* pAcquireTimeoutMilliseconds;
|
|
|
|
uint32_t releaseCount;
|
|
|
|
const VkDeviceMemory* pReleaseSyncs;
|
|
|
|
const uint64_t* pReleaseKeys;
|
|
|
|
} VkWin32KeyedMutexAcquireReleaseInfoNV;
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#define VK_KHX_device_group 1
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
#define VK_KHX_DEVICE_GROUP_SPEC_VERSION 2
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group"
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
#define VK_MAX_DEVICE_GROUP_SIZE_KHX 32
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkPeerMemoryFeatureFlagBitsKHX {
|
|
|
|
VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX = 0x00000001,
|
|
|
|
VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX = 0x00000002,
|
|
|
|
VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX = 0x00000004,
|
|
|
|
VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX = 0x00000008,
|
|
|
|
VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
|
|
|
|
} VkPeerMemoryFeatureFlagBitsKHX;
|
|
|
|
typedef VkFlags VkPeerMemoryFeatureFlagsKHX;
|
|
|
|
|
|
|
|
typedef enum VkMemoryAllocateFlagBitsKHX {
|
|
|
|
VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX = 0x00000001,
|
|
|
|
VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
|
|
|
|
} VkMemoryAllocateFlagBitsKHX;
|
|
|
|
typedef VkFlags VkMemoryAllocateFlagsKHX;
|
|
|
|
|
|
|
|
typedef enum VkDeviceGroupPresentModeFlagBitsKHX {
|
|
|
|
VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX = 0x00000001,
|
|
|
|
VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX = 0x00000002,
|
|
|
|
VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX = 0x00000004,
|
|
|
|
VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX = 0x00000008,
|
|
|
|
VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
|
|
|
|
} VkDeviceGroupPresentModeFlagBitsKHX;
|
|
|
|
typedef VkFlags VkDeviceGroupPresentModeFlagsKHX;
|
|
|
|
|
|
|
|
typedef struct VkMemoryAllocateFlagsInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkMemoryAllocateFlagsKHX flags;
|
|
|
|
uint32_t deviceMask;
|
|
|
|
} VkMemoryAllocateFlagsInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkDeviceGroupRenderPassBeginInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t deviceMask;
|
|
|
|
uint32_t deviceRenderAreaCount;
|
|
|
|
const VkRect2D* pDeviceRenderAreas;
|
|
|
|
} VkDeviceGroupRenderPassBeginInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkDeviceGroupCommandBufferBeginInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t deviceMask;
|
|
|
|
} VkDeviceGroupCommandBufferBeginInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkDeviceGroupSubmitInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t waitSemaphoreCount;
|
|
|
|
const uint32_t* pWaitSemaphoreDeviceIndices;
|
|
|
|
uint32_t commandBufferCount;
|
|
|
|
const uint32_t* pCommandBufferDeviceMasks;
|
|
|
|
uint32_t signalSemaphoreCount;
|
|
|
|
const uint32_t* pSignalSemaphoreDeviceIndices;
|
|
|
|
} VkDeviceGroupSubmitInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkDeviceGroupBindSparseInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t resourceDeviceIndex;
|
|
|
|
uint32_t memoryDeviceIndex;
|
|
|
|
} VkDeviceGroupBindSparseInfoKHX;
|
|
|
|
|
Change log for September 15, 2017 Vulkan 1.0.61 spec update:
* Bump API patch number and header version number to 61 for this update.
Github Issues:
* Provide alternate length attributes (altlen=) in the XML schema, for
those using length attributes to generate code instead of documentation
(public issue 555).
* Fix erroneous references to `latex:` being used for asciidoc math
markup, rather than `latexmath:` (public pull request 556).
* Add author ID to XML for Kazan software renderer (public pull request
557).
Internal Issues:
* Add the <<fundamentals-abi,Application Binary Interface>> section
describing platform ABI requirements and recommendations, add examples
of function and function pointer declarations to the
<<boilerplate-platform-specific-calling-conventions, Platform-Specific
Calling Conventions>> section, and remove related language that existed
elsewhere in the specification (internal issue 64).
* Describe where to document valid usage interactions of chained
structures in the style guide, and fix one case now appearing in
slink:VkBufferCreateInfo instead of the child
slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
715).
* Add example to the style guide of describing enumerated types which are
empty when the spec is built without relevant extensions enabled, and
apply it to existing examples for
elink:VkDescriptorSetLayoutCreateFlagBits and
elink:VkSubpassDescriptionFlagBits (internal issue 864).
* Add a note to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section that the special values suffixed with
etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
etext:_MAX_ENUM are not part of the API and should: not be used by
applications (internal issue 872).
* Added note to flink:vkCmdUpdateBuffers explaining the performance
penalty for copies done in this way, and why the upper copy limit is
what it is (internal issue 952).
* Update `VK_KHX_device_group` to split some functionality into the new
`VK_KHR_bind_memory2` extension, and rename that functionality (internal
issue 969).
* Remove *Status* fields from extension appendices, since they are by
definition published and complete by the time they reach the public
github repository (internal issue 973).
Other Issues:
* Update Data Format specification dependency to version 1.2 and change
references to DF sections accordingly.
* Update XML to make the pname:pAllocator parameter of
flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
the `VK_EXT_display_control` extension as optional.
New Extensions:
* `VK_KHR_bind_memory2`
* `VK_KHR_image_format_list`
* `VK_KHR_maintenance2`
* `VK_KHR_sampler_ycbcr_conversion`
2017-09-15 05:41:33 +00:00
|
|
|
typedef struct VkBindBufferMemoryDeviceGroupInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t deviceIndexCount;
|
|
|
|
const uint32_t* pDeviceIndices;
|
|
|
|
} VkBindBufferMemoryDeviceGroupInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkBindImageMemoryDeviceGroupInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t deviceIndexCount;
|
|
|
|
const uint32_t* pDeviceIndices;
|
|
|
|
uint32_t SFRRectCount;
|
|
|
|
const VkRect2D* pSFRRects;
|
|
|
|
} VkBindImageMemoryDeviceGroupInfoKHX;
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
typedef struct VkDeviceGroupPresentCapabilitiesKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX];
|
|
|
|
VkDeviceGroupPresentModeFlagsKHX modes;
|
|
|
|
} VkDeviceGroupPresentCapabilitiesKHX;
|
|
|
|
|
|
|
|
typedef struct VkImageSwapchainCreateInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSwapchainKHR swapchain;
|
|
|
|
} VkImageSwapchainCreateInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkBindImageMemorySwapchainInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSwapchainKHR swapchain;
|
|
|
|
uint32_t imageIndex;
|
|
|
|
} VkBindImageMemorySwapchainInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkAcquireNextImageInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSwapchainKHR swapchain;
|
|
|
|
uint64_t timeout;
|
|
|
|
VkSemaphore semaphore;
|
|
|
|
VkFence fence;
|
|
|
|
uint32_t deviceMask;
|
|
|
|
} VkAcquireNextImageInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkDeviceGroupPresentInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t swapchainCount;
|
|
|
|
const uint32_t* pDeviceMasks;
|
|
|
|
VkDeviceGroupPresentModeFlagBitsKHX mode;
|
|
|
|
} VkDeviceGroupPresentInfoKHX;
|
|
|
|
|
|
|
|
typedef struct VkDeviceGroupSwapchainCreateInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDeviceGroupPresentModeFlagsKHX modes;
|
|
|
|
} VkDeviceGroupSwapchainCreateInfoKHX;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHX)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHX)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHX)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex);
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t heapIndex,
|
|
|
|
uint32_t localDeviceIndex,
|
|
|
|
uint32_t remoteDeviceIndex,
|
|
|
|
VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t deviceMask);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t baseGroupX,
|
|
|
|
uint32_t baseGroupY,
|
|
|
|
uint32_t baseGroupZ,
|
|
|
|
uint32_t groupCountX,
|
|
|
|
uint32_t groupCountY,
|
|
|
|
uint32_t groupCountZ);
|
|
|
|
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX(
|
|
|
|
VkDevice device,
|
|
|
|
VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX(
|
|
|
|
VkDevice device,
|
|
|
|
VkSurfaceKHR surface,
|
|
|
|
VkDeviceGroupPresentModeFlagsKHX* pModes);
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkSurfaceKHR surface,
|
|
|
|
uint32_t* pRectCount,
|
|
|
|
VkRect2D* pRects);
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX(
|
|
|
|
VkDevice device,
|
|
|
|
const VkAcquireNextImageInfoKHX* pAcquireInfo,
|
|
|
|
uint32_t* pImageIndex);
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#endif
|
|
|
|
|
2016-09-17 04:22:17 +00:00
|
|
|
#define VK_EXT_validation_flags 1
|
|
|
|
#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkValidationCheckEXT {
|
|
|
|
VK_VALIDATION_CHECK_ALL_EXT = 0,
|
Change log for May 20, 2017 Vulkan 1.0.50 spec update:
* Bump API patch number and header version number to 50 for this update.
Github Issues:
* Fix numerous minor issues with the VK_EXT_debug_report extension (public
issues 478, 483, 486, 489, 490).
Internal Issues:
* Update flink:vkAllocateDescriptorSets to specify conditions under which
to return ename:VK_ERROR_FRAGMENTED_POOL or
ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
out-of-host/out-of-device-memory, and improve the
<<fundamentals-errorcodes, description of those errors (internal issue
654).
* Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
a single semaphore, and how to deal with that when multiple physical
devices in a logical device need to wait on it (internal issue 730).
* Improve description of pname:pNext chains of
slink:VkPhysicalDeviceImageFormatInfo2KHR and
slink:VkImageFormatProperties2KHR (internal issue 814).
* Clean up math markup issues in the <<textures, Image Operations>>
chapter (internal issue 818).
* Update validusage target to use more robust code for preprocessing, by
making direct use of Asciidoctor's preprocessor. Added uniqueItems check
to JSON vu schema and add clean_validusage target (internal issue 826).
* Update style guide to prohibit writing non-self-contained (on a single
bullet point) Valid Usage statements, and modify offending Valid Usage
statements in the Specification to match, to assist with automatic
extraction for the validation layers (internal issue 828).
* Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
of the `VK_EXT_validation_flags` extension, to selectively disable
shader validation.
* Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
* Modify reflow.py script to place VUID tag anchors standalone on a line
following their corresponding bullet point, and reflow the spec text
accordingly (this had been pending since the initial tag deployment).
New Extensions:
* `VK_AMD_texture_gather_bias_lod`
2017-05-21 00:00:50 +00:00
|
|
|
VK_VALIDATION_CHECK_SHADERS_EXT = 1,
|
2016-09-17 04:22:17 +00:00
|
|
|
VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
|
Change log for May 20, 2017 Vulkan 1.0.50 spec update:
* Bump API patch number and header version number to 50 for this update.
Github Issues:
* Fix numerous minor issues with the VK_EXT_debug_report extension (public
issues 478, 483, 486, 489, 490).
Internal Issues:
* Update flink:vkAllocateDescriptorSets to specify conditions under which
to return ename:VK_ERROR_FRAGMENTED_POOL or
ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
out-of-host/out-of-device-memory, and improve the
<<fundamentals-errorcodes, description of those errors (internal issue
654).
* Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
a single semaphore, and how to deal with that when multiple physical
devices in a logical device need to wait on it (internal issue 730).
* Improve description of pname:pNext chains of
slink:VkPhysicalDeviceImageFormatInfo2KHR and
slink:VkImageFormatProperties2KHR (internal issue 814).
* Clean up math markup issues in the <<textures, Image Operations>>
chapter (internal issue 818).
* Update validusage target to use more robust code for preprocessing, by
making direct use of Asciidoctor's preprocessor. Added uniqueItems check
to JSON vu schema and add clean_validusage target (internal issue 826).
* Update style guide to prohibit writing non-self-contained (on a single
bullet point) Valid Usage statements, and modify offending Valid Usage
statements in the Specification to match, to assist with automatic
extraction for the validation layers (internal issue 828).
* Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
of the `VK_EXT_validation_flags` extension, to selectively disable
shader validation.
* Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
* Modify reflow.py script to place VUID tag anchors standalone on a line
following their corresponding bullet point, and reflow the spec text
accordingly (this had been pending since the initial tag deployment).
New Extensions:
* `VK_AMD_texture_gather_bias_lod`
2017-05-21 00:00:50 +00:00
|
|
|
VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT,
|
|
|
|
VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
|
2016-09-17 04:22:17 +00:00
|
|
|
VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkValidationCheckEXT;
|
|
|
|
|
|
|
|
typedef struct VkValidationFlagsEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t disabledValidationCheckCount;
|
|
|
|
VkValidationCheckEXT* pDisabledValidationChecks;
|
|
|
|
} VkValidationFlagsEXT;
|
|
|
|
|
|
|
|
|
|
|
|
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
#ifdef VK_USE_PLATFORM_VI_NN
|
|
|
|
#define VK_NN_vi_surface 1
|
|
|
|
#define VK_NN_VI_SURFACE_SPEC_VERSION 1
|
|
|
|
#define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
|
|
|
|
|
|
|
|
typedef VkFlags VkViSurfaceCreateFlagsNN;
|
|
|
|
|
|
|
|
typedef struct VkViSurfaceCreateInfoNN {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkViSurfaceCreateFlagsNN flags;
|
|
|
|
void* window;
|
|
|
|
} VkViSurfaceCreateInfoNN;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkViSurfaceCreateInfoNN* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_VI_NN */
|
|
|
|
|
|
|
|
#define VK_EXT_shader_subgroup_ballot 1
|
|
|
|
#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_EXT_shader_subgroup_vote 1
|
|
|
|
#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
|
|
|
|
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#define VK_KHX_device_group_creation 1
|
|
|
|
#define VK_KHX_DEVICE_GROUP_CREATION_SPEC_VERSION 1
|
|
|
|
#define VK_KHX_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHX_device_group_creation"
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceGroupPropertiesKHX {
|
|
|
|
VkStructureType sType;
|
2017-03-25 08:46:58 +00:00
|
|
|
void* pNext;
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
uint32_t physicalDeviceCount;
|
|
|
|
VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX];
|
|
|
|
VkBool32 subsetAllocation;
|
|
|
|
} VkPhysicalDeviceGroupPropertiesKHX;
|
|
|
|
|
|
|
|
typedef struct VkDeviceGroupDeviceCreateInfoKHX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t physicalDeviceCount;
|
|
|
|
const VkPhysicalDevice* pPhysicalDevices;
|
|
|
|
} VkDeviceGroupDeviceCreateInfoKHX;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHX)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX(
|
|
|
|
VkInstance instance,
|
|
|
|
uint32_t* pPhysicalDeviceGroupCount,
|
|
|
|
VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties);
|
|
|
|
#endif
|
|
|
|
|
Change log for November 25, 2016 Vulkan 1.0.35 spec update:
* Bump API patch number and header version number to 35 for this update.
Github Issues:
* Document in the <<memory-device-hostaccess,Host Access>> section that
mapping and unmapping does not invalidate or flush the mapped memory
(public issues 27, 126).
* Redefine the entire <<synchronization>> chapter in terms of consistent
and well defined terminology, that's called out at the start of the
chapter. This terminology is applied equally to all synchronization
types, including subpass dependencies, submissions, and much of the
implicit ordering stuff dotted around the spec. Key terms are laid out
in the <<synchronization-dependencies,Execution and Memory
Dependencies>> section at the top of the rewritten chapter (public
issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
* Specify order of submission for batches in the
<<vkQueueSubmit,vkQueueSubmit>> and
<<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
* Add valid usage statements to each of the WSI extension sections
indicating that the WSI-specific structure parameters must be valid, and
remove automatically generated valid usage statements now covered by the
manual sections (public issue 383).
* Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
issue 390).
Internal Issues:
* Update +vk.xml+ to make previously explicit valid usage statements for
<<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
(internal issue 553).
* Add valid usage statement for slink:VkCreateImageInfo preventing
creation of 1D sparse images (internal issue 573).
* Fix Python scripts to always read/write files in utf-8 encoding, and a
logic error in reflib.py which could cause a fatal error for
malstructured asciidoc (internal issues 578, 586).
2016-11-26 10:33:44 +00:00
|
|
|
#define VK_NVX_device_generated_commands 1
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
|
|
|
|
|
Change log for August 14, 2017 Vulkan 1.0.58 spec update:
* Bump API patch number and header version number to 58 for this update.
Github Issues:
* Update the <<interfaces-resources-descset,Descriptor Set Interface>>
section to allow multiple variables with the same descriptor set/binding
decorations, and require that all variables that are statically used
must be consistent with the pipeline layout. Allow
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER to be used with texture
and sampler variables (public issues 522, 524).
Internal Issues:
* Replace networkx package used for extension dependency generation with a
homegrown network dependency traverser (internal issue 713).
* Specify in the <<interfaces-fragmentoutput, Fragment Output Interface>>
section that if a fragment shader writes integers that cannot be
represented in the format of the colour attachment, then the result is
undefined (internal issue 893).
* Separate malformed valid usage statement for
slink:VkPipelineRasterizationStateCreateInfo into two (internal issue
918).
* Fix cases where the term 'pNext chain' is incorrectly used in reference
to functions, rather than their parameters. Replace 'pNext list' with
'pNext chain'. Fixed typo in the example code of
+VK_KHR_dedicated_allocation+ (internal issue 944).
* Fix typo in elink:VkExternalSemaphoreHandleTypeFlagBitsKHR enum
descriptions, replacing
etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR with
ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR, and make the
description more consistent with
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR (internal issue 950).
Other Issues:
* Clarify how pipeline stage masks affect
<<synchronization-pipeline-stages-masks, access and synchronization
scopes>>.
* Clarify that dedicated allocations do not allow aliasing in the
flink:vkBindBufferMemory and flink:vkBindImageMemory valid usage
statements.
* Correct specification of pname:dynamicCount for push_constant token in
slink:VkIndirectCommandsLayoutNVX.
New Extensions:
* `VK_EXT_shader_viewport_index_layer`
2017-08-14 08:58:07 +00:00
|
|
|
#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
|
Change log for November 25, 2016 Vulkan 1.0.35 spec update:
* Bump API patch number and header version number to 35 for this update.
Github Issues:
* Document in the <<memory-device-hostaccess,Host Access>> section that
mapping and unmapping does not invalidate or flush the mapped memory
(public issues 27, 126).
* Redefine the entire <<synchronization>> chapter in terms of consistent
and well defined terminology, that's called out at the start of the
chapter. This terminology is applied equally to all synchronization
types, including subpass dependencies, submissions, and much of the
implicit ordering stuff dotted around the spec. Key terms are laid out
in the <<synchronization-dependencies,Execution and Memory
Dependencies>> section at the top of the rewritten chapter (public
issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
* Specify order of submission for batches in the
<<vkQueueSubmit,vkQueueSubmit>> and
<<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
* Add valid usage statements to each of the WSI extension sections
indicating that the WSI-specific structure parameters must be valid, and
remove automatically generated valid usage statements now covered by the
manual sections (public issue 383).
* Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
issue 390).
Internal Issues:
* Update +vk.xml+ to make previously explicit valid usage statements for
<<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
(internal issue 553).
* Add valid usage statement for slink:VkCreateImageInfo preventing
creation of 1D sparse images (internal issue 573).
* Fix Python scripts to always read/write files in utf-8 encoding, and a
logic error in reflib.py which could cause a fatal error for
malstructured asciidoc (internal issues 578, 586).
2016-11-26 10:33:44 +00:00
|
|
|
#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkIndirectCommandsTokenTypeNVX {
|
2017-06-05 03:48:43 +00:00
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1),
|
Change log for November 25, 2016 Vulkan 1.0.35 spec update:
* Bump API patch number and header version number to 35 for this update.
Github Issues:
* Document in the <<memory-device-hostaccess,Host Access>> section that
mapping and unmapping does not invalidate or flush the mapped memory
(public issues 27, 126).
* Redefine the entire <<synchronization>> chapter in terms of consistent
and well defined terminology, that's called out at the start of the
chapter. This terminology is applied equally to all synchronization
types, including subpass dependencies, submissions, and much of the
implicit ordering stuff dotted around the spec. Key terms are laid out
in the <<synchronization-dependencies,Execution and Memory
Dependencies>> section at the top of the rewritten chapter (public
issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
* Specify order of submission for batches in the
<<vkQueueSubmit,vkQueueSubmit>> and
<<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
* Add valid usage statements to each of the WSI extension sections
indicating that the WSI-specific structure parameters must be valid, and
remove automatically generated valid usage statements now covered by the
manual sections (public issue 383).
* Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
issue 390).
Internal Issues:
* Update +vk.xml+ to make previously explicit valid usage statements for
<<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
(internal issue 553).
* Add valid usage statement for slink:VkCreateImageInfo preventing
creation of 1D sparse images (internal issue 573).
* Fix Python scripts to always read/write files in utf-8 encoding, and a
logic error in reflib.py which could cause a fatal error for
malstructured asciidoc (internal issues 578, 586).
2016-11-26 10:33:44 +00:00
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
|
|
|
|
} VkIndirectCommandsTokenTypeNVX;
|
|
|
|
|
|
|
|
typedef enum VkObjectEntryTypeNVX {
|
2017-06-05 03:48:43 +00:00
|
|
|
VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1),
|
Change log for November 25, 2016 Vulkan 1.0.35 spec update:
* Bump API patch number and header version number to 35 for this update.
Github Issues:
* Document in the <<memory-device-hostaccess,Host Access>> section that
mapping and unmapping does not invalidate or flush the mapped memory
(public issues 27, 126).
* Redefine the entire <<synchronization>> chapter in terms of consistent
and well defined terminology, that's called out at the start of the
chapter. This terminology is applied equally to all synchronization
types, including subpass dependencies, submissions, and much of the
implicit ordering stuff dotted around the spec. Key terms are laid out
in the <<synchronization-dependencies,Execution and Memory
Dependencies>> section at the top of the rewritten chapter (public
issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
* Specify order of submission for batches in the
<<vkQueueSubmit,vkQueueSubmit>> and
<<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
* Add valid usage statements to each of the WSI extension sections
indicating that the WSI-specific structure parameters must be valid, and
remove automatically generated valid usage statements now covered by the
manual sections (public issue 383).
* Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
issue 390).
Internal Issues:
* Update +vk.xml+ to make previously explicit valid usage statements for
<<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
(internal issue 553).
* Add valid usage statement for slink:VkCreateImageInfo preventing
creation of 1D sparse images (internal issue 573).
* Fix Python scripts to always read/write files in utf-8 encoding, and a
logic error in reflib.py which could cause a fatal error for
malstructured asciidoc (internal issues 578, 586).
2016-11-26 10:33:44 +00:00
|
|
|
VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
|
|
|
|
} VkObjectEntryTypeNVX;
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
|
|
|
|
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
|
|
|
|
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
|
|
|
|
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
|
|
|
|
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
|
|
|
|
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
|
|
|
|
} VkIndirectCommandsLayoutUsageFlagBitsNVX;
|
|
|
|
typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
|
|
|
|
|
|
|
|
typedef enum VkObjectEntryUsageFlagBitsNVX {
|
|
|
|
VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
|
|
|
|
VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
|
|
|
|
VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
|
|
|
|
} VkObjectEntryUsageFlagBitsNVX;
|
|
|
|
typedef VkFlags VkObjectEntryUsageFlagsNVX;
|
|
|
|
|
|
|
|
typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBool32 computeBindingPointSupport;
|
|
|
|
} VkDeviceGeneratedCommandsFeaturesNVX;
|
|
|
|
|
|
|
|
typedef struct VkDeviceGeneratedCommandsLimitsNVX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t maxIndirectCommandsLayoutTokenCount;
|
|
|
|
uint32_t maxObjectEntryCounts;
|
|
|
|
uint32_t minSequenceCountBufferOffsetAlignment;
|
|
|
|
uint32_t minSequenceIndexBufferOffsetAlignment;
|
|
|
|
uint32_t minCommandsTokenBufferOffsetAlignment;
|
|
|
|
} VkDeviceGeneratedCommandsLimitsNVX;
|
|
|
|
|
|
|
|
typedef struct VkIndirectCommandsTokenNVX {
|
|
|
|
VkIndirectCommandsTokenTypeNVX tokenType;
|
|
|
|
VkBuffer buffer;
|
|
|
|
VkDeviceSize offset;
|
|
|
|
} VkIndirectCommandsTokenNVX;
|
|
|
|
|
|
|
|
typedef struct VkIndirectCommandsLayoutTokenNVX {
|
|
|
|
VkIndirectCommandsTokenTypeNVX tokenType;
|
|
|
|
uint32_t bindingUnit;
|
|
|
|
uint32_t dynamicCount;
|
|
|
|
uint32_t divisor;
|
|
|
|
} VkIndirectCommandsLayoutTokenNVX;
|
|
|
|
|
|
|
|
typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineBindPoint pipelineBindPoint;
|
|
|
|
VkIndirectCommandsLayoutUsageFlagsNVX flags;
|
|
|
|
uint32_t tokenCount;
|
|
|
|
const VkIndirectCommandsLayoutTokenNVX* pTokens;
|
|
|
|
} VkIndirectCommandsLayoutCreateInfoNVX;
|
|
|
|
|
|
|
|
typedef struct VkCmdProcessCommandsInfoNVX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkObjectTableNVX objectTable;
|
|
|
|
VkIndirectCommandsLayoutNVX indirectCommandsLayout;
|
|
|
|
uint32_t indirectCommandsTokenCount;
|
|
|
|
const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens;
|
|
|
|
uint32_t maxSequencesCount;
|
|
|
|
VkCommandBuffer targetCommandBuffer;
|
|
|
|
VkBuffer sequencesCountBuffer;
|
|
|
|
VkDeviceSize sequencesCountOffset;
|
|
|
|
VkBuffer sequencesIndexBuffer;
|
|
|
|
VkDeviceSize sequencesIndexOffset;
|
|
|
|
} VkCmdProcessCommandsInfoNVX;
|
|
|
|
|
|
|
|
typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkObjectTableNVX objectTable;
|
|
|
|
VkIndirectCommandsLayoutNVX indirectCommandsLayout;
|
|
|
|
uint32_t maxSequencesCount;
|
|
|
|
} VkCmdReserveSpaceForCommandsInfoNVX;
|
|
|
|
|
|
|
|
typedef struct VkObjectTableCreateInfoNVX {
|
2016-11-29 23:30:48 +00:00
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t objectCount;
|
|
|
|
const VkObjectEntryTypeNVX* pObjectEntryTypes;
|
|
|
|
const uint32_t* pObjectEntryCounts;
|
|
|
|
const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags;
|
|
|
|
uint32_t maxUniformBuffersPerDescriptor;
|
|
|
|
uint32_t maxStorageBuffersPerDescriptor;
|
|
|
|
uint32_t maxStorageImagesPerDescriptor;
|
|
|
|
uint32_t maxSampledImagesPerDescriptor;
|
|
|
|
uint32_t maxPipelineLayouts;
|
Change log for November 25, 2016 Vulkan 1.0.35 spec update:
* Bump API patch number and header version number to 35 for this update.
Github Issues:
* Document in the <<memory-device-hostaccess,Host Access>> section that
mapping and unmapping does not invalidate or flush the mapped memory
(public issues 27, 126).
* Redefine the entire <<synchronization>> chapter in terms of consistent
and well defined terminology, that's called out at the start of the
chapter. This terminology is applied equally to all synchronization
types, including subpass dependencies, submissions, and much of the
implicit ordering stuff dotted around the spec. Key terms are laid out
in the <<synchronization-dependencies,Execution and Memory
Dependencies>> section at the top of the rewritten chapter (public
issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
* Specify order of submission for batches in the
<<vkQueueSubmit,vkQueueSubmit>> and
<<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
* Add valid usage statements to each of the WSI extension sections
indicating that the WSI-specific structure parameters must be valid, and
remove automatically generated valid usage statements now covered by the
manual sections (public issue 383).
* Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
issue 390).
Internal Issues:
* Update +vk.xml+ to make previously explicit valid usage statements for
<<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
(internal issue 553).
* Add valid usage statement for slink:VkCreateImageInfo preventing
creation of 1D sparse images (internal issue 573).
* Fix Python scripts to always read/write files in utf-8 encoding, and a
logic error in reflib.py which could cause a fatal error for
malstructured asciidoc (internal issues 578, 586).
2016-11-26 10:33:44 +00:00
|
|
|
} VkObjectTableCreateInfoNVX;
|
|
|
|
|
|
|
|
typedef struct VkObjectTableEntryNVX {
|
|
|
|
VkObjectEntryTypeNVX type;
|
|
|
|
VkObjectEntryUsageFlagsNVX flags;
|
|
|
|
} VkObjectTableEntryNVX;
|
|
|
|
|
|
|
|
typedef struct VkObjectTablePipelineEntryNVX {
|
|
|
|
VkObjectEntryTypeNVX type;
|
|
|
|
VkObjectEntryUsageFlagsNVX flags;
|
|
|
|
VkPipeline pipeline;
|
|
|
|
} VkObjectTablePipelineEntryNVX;
|
|
|
|
|
|
|
|
typedef struct VkObjectTableDescriptorSetEntryNVX {
|
|
|
|
VkObjectEntryTypeNVX type;
|
|
|
|
VkObjectEntryUsageFlagsNVX flags;
|
|
|
|
VkPipelineLayout pipelineLayout;
|
|
|
|
VkDescriptorSet descriptorSet;
|
|
|
|
} VkObjectTableDescriptorSetEntryNVX;
|
|
|
|
|
|
|
|
typedef struct VkObjectTableVertexBufferEntryNVX {
|
|
|
|
VkObjectEntryTypeNVX type;
|
|
|
|
VkObjectEntryUsageFlagsNVX flags;
|
|
|
|
VkBuffer buffer;
|
|
|
|
} VkObjectTableVertexBufferEntryNVX;
|
|
|
|
|
|
|
|
typedef struct VkObjectTableIndexBufferEntryNVX {
|
|
|
|
VkObjectEntryTypeNVX type;
|
|
|
|
VkObjectEntryUsageFlagsNVX flags;
|
|
|
|
VkBuffer buffer;
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
VkIndexType indexType;
|
Change log for November 25, 2016 Vulkan 1.0.35 spec update:
* Bump API patch number and header version number to 35 for this update.
Github Issues:
* Document in the <<memory-device-hostaccess,Host Access>> section that
mapping and unmapping does not invalidate or flush the mapped memory
(public issues 27, 126).
* Redefine the entire <<synchronization>> chapter in terms of consistent
and well defined terminology, that's called out at the start of the
chapter. This terminology is applied equally to all synchronization
types, including subpass dependencies, submissions, and much of the
implicit ordering stuff dotted around the spec. Key terms are laid out
in the <<synchronization-dependencies,Execution and Memory
Dependencies>> section at the top of the rewritten chapter (public
issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
* Specify order of submission for batches in the
<<vkQueueSubmit,vkQueueSubmit>> and
<<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
* Add valid usage statements to each of the WSI extension sections
indicating that the WSI-specific structure parameters must be valid, and
remove automatically generated valid usage statements now covered by the
manual sections (public issue 383).
* Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
issue 390).
Internal Issues:
* Update +vk.xml+ to make previously explicit valid usage statements for
<<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
(internal issue 553).
* Add valid usage statement for slink:VkCreateImageInfo preventing
creation of 1D sparse images (internal issue 573).
* Fix Python scripts to always read/write files in utf-8 encoding, and a
logic error in reflib.py which could cause a fatal error for
malstructured asciidoc (internal issues 578, 586).
2016-11-26 10:33:44 +00:00
|
|
|
} VkObjectTableIndexBufferEntryNVX;
|
|
|
|
|
|
|
|
typedef struct VkObjectTablePushConstantEntryNVX {
|
|
|
|
VkObjectEntryTypeNVX type;
|
|
|
|
VkObjectEntryUsageFlagsNVX flags;
|
|
|
|
VkPipelineLayout pipelineLayout;
|
|
|
|
VkShaderStageFlags stageFlags;
|
|
|
|
} VkObjectTablePushConstantEntryNVX;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
|
|
|
|
VkDevice device,
|
|
|
|
const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
|
|
|
|
VkDevice device,
|
|
|
|
VkIndirectCommandsLayoutNVX indirectCommandsLayout,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
|
|
|
|
VkDevice device,
|
|
|
|
const VkObjectTableCreateInfoNVX* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkObjectTableNVX* pObjectTable);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
|
|
|
|
VkDevice device,
|
|
|
|
VkObjectTableNVX objectTable,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
|
|
|
|
VkDevice device,
|
|
|
|
VkObjectTableNVX objectTable,
|
|
|
|
uint32_t objectCount,
|
|
|
|
const VkObjectTableEntryNVX* const* ppObjectTableEntries,
|
|
|
|
const uint32_t* pObjectIndices);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
|
|
|
|
VkDevice device,
|
|
|
|
VkObjectTableNVX objectTable,
|
|
|
|
uint32_t objectCount,
|
|
|
|
const VkObjectEntryTypeNVX* pObjectEntryTypes,
|
|
|
|
const uint32_t* pObjectIndices);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
|
|
|
|
VkDeviceGeneratedCommandsLimitsNVX* pLimits);
|
|
|
|
#endif
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#define VK_NV_clip_space_w_scaling 1
|
|
|
|
#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
|
|
|
|
#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
|
|
|
|
|
|
|
|
typedef struct VkViewportWScalingNV {
|
|
|
|
float xcoeff;
|
|
|
|
float ycoeff;
|
|
|
|
} VkViewportWScalingNV;
|
|
|
|
|
|
|
|
typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBool32 viewportWScalingEnable;
|
|
|
|
uint32_t viewportCount;
|
|
|
|
const VkViewportWScalingNV* pViewportWScalings;
|
|
|
|
} VkPipelineViewportWScalingStateCreateInfoNV;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t firstViewport,
|
|
|
|
uint32_t viewportCount,
|
|
|
|
const VkViewportWScalingNV* pViewportWScalings);
|
|
|
|
#endif
|
|
|
|
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
#define VK_EXT_direct_mode_display 1
|
|
|
|
#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkDisplayKHR display);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
|
|
|
#define VK_EXT_acquire_xlib_display 1
|
|
|
|
#include <X11/extensions/Xrandr.h>
|
|
|
|
|
|
|
|
#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
Display* dpy,
|
|
|
|
VkDisplayKHR display);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
Display* dpy,
|
|
|
|
RROutput rrOutput,
|
|
|
|
VkDisplayKHR* pDisplay);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */
|
|
|
|
|
|
|
|
#define VK_EXT_display_surface_counter 1
|
|
|
|
#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
|
2017-08-20 08:06:59 +00:00
|
|
|
#define VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkSurfaceCounterFlagBitsEXT {
|
|
|
|
VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
|
|
|
|
VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkSurfaceCounterFlagBitsEXT;
|
|
|
|
typedef VkFlags VkSurfaceCounterFlagsEXT;
|
|
|
|
|
|
|
|
typedef struct VkSurfaceCapabilities2EXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
uint32_t minImageCount;
|
|
|
|
uint32_t maxImageCount;
|
|
|
|
VkExtent2D currentExtent;
|
|
|
|
VkExtent2D minImageExtent;
|
|
|
|
VkExtent2D maxImageExtent;
|
|
|
|
uint32_t maxImageArrayLayers;
|
|
|
|
VkSurfaceTransformFlagsKHR supportedTransforms;
|
|
|
|
VkSurfaceTransformFlagBitsKHR currentTransform;
|
|
|
|
VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
|
|
|
|
VkImageUsageFlags supportedUsageFlags;
|
|
|
|
VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
|
|
|
|
} VkSurfaceCapabilities2EXT;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkSurfaceKHR surface,
|
|
|
|
VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define VK_EXT_display_control 1
|
|
|
|
#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkDisplayPowerStateEXT {
|
|
|
|
VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
|
|
|
|
VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
|
|
|
|
VK_DISPLAY_POWER_STATE_ON_EXT = 2,
|
|
|
|
VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
|
|
|
|
VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
|
|
|
|
VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
|
|
|
|
VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkDisplayPowerStateEXT;
|
|
|
|
|
|
|
|
typedef enum VkDeviceEventTypeEXT {
|
|
|
|
VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
|
|
|
|
VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
|
|
|
|
VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
|
|
|
|
VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
|
|
|
|
VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkDeviceEventTypeEXT;
|
|
|
|
|
|
|
|
typedef enum VkDisplayEventTypeEXT {
|
|
|
|
VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
|
|
|
|
VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
|
|
|
|
VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
|
|
|
|
VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
|
|
|
|
VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkDisplayEventTypeEXT;
|
|
|
|
|
|
|
|
typedef struct VkDisplayPowerInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDisplayPowerStateEXT powerState;
|
|
|
|
} VkDisplayPowerInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkDeviceEventInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDeviceEventTypeEXT deviceEvent;
|
|
|
|
} VkDeviceEventInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkDisplayEventInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkDisplayEventTypeEXT displayEvent;
|
|
|
|
} VkDisplayEventInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkSwapchainCounterCreateInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSurfaceCounterFlagsEXT surfaceCounters;
|
|
|
|
} VkSwapchainCounterCreateInfoEXT;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
|
|
|
|
VkDevice device,
|
|
|
|
VkDisplayKHR display,
|
|
|
|
const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
|
|
|
|
VkDevice device,
|
|
|
|
const VkDeviceEventInfoEXT* pDeviceEventInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkFence* pFence);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
|
|
|
|
VkDevice device,
|
|
|
|
VkDisplayKHR display,
|
|
|
|
const VkDisplayEventInfoEXT* pDisplayEventInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkFence* pFence);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
|
|
|
|
VkDevice device,
|
|
|
|
VkSwapchainKHR swapchain,
|
|
|
|
VkSurfaceCounterFlagBitsEXT counter,
|
|
|
|
uint64_t* pCounterValue);
|
|
|
|
#endif
|
|
|
|
|
2017-03-11 01:39:29 +00:00
|
|
|
#define VK_GOOGLE_display_timing 1
|
|
|
|
#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
|
|
|
|
#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
|
|
|
|
|
|
|
|
typedef struct VkRefreshCycleDurationGOOGLE {
|
|
|
|
uint64_t refreshDuration;
|
|
|
|
} VkRefreshCycleDurationGOOGLE;
|
|
|
|
|
|
|
|
typedef struct VkPastPresentationTimingGOOGLE {
|
|
|
|
uint32_t presentID;
|
|
|
|
uint64_t desiredPresentTime;
|
|
|
|
uint64_t actualPresentTime;
|
|
|
|
uint64_t earliestPresentTime;
|
|
|
|
uint64_t presentMargin;
|
|
|
|
} VkPastPresentationTimingGOOGLE;
|
|
|
|
|
|
|
|
typedef struct VkPresentTimeGOOGLE {
|
|
|
|
uint32_t presentID;
|
|
|
|
uint64_t desiredPresentTime;
|
|
|
|
} VkPresentTimeGOOGLE;
|
|
|
|
|
|
|
|
typedef struct VkPresentTimesInfoGOOGLE {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t swapchainCount;
|
|
|
|
const VkPresentTimeGOOGLE* pTimes;
|
|
|
|
} VkPresentTimesInfoGOOGLE;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
|
|
|
|
VkDevice device,
|
|
|
|
VkSwapchainKHR swapchain,
|
|
|
|
VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
|
|
|
|
VkDevice device,
|
|
|
|
VkSwapchainKHR swapchain,
|
|
|
|
uint32_t* pPresentationTimingCount,
|
|
|
|
VkPastPresentationTimingGOOGLE* pPresentationTimings);
|
|
|
|
#endif
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#define VK_NV_sample_mask_override_coverage 1
|
|
|
|
#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
|
|
|
|
#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_NV_geometry_shader_passthrough 1
|
|
|
|
#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
|
|
|
|
#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_NV_viewport_array2 1
|
|
|
|
#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
|
|
|
|
#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_NVX_multiview_per_view_attributes 1
|
|
|
|
#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
|
|
|
|
#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkBool32 perViewPositionAllComponents;
|
|
|
|
} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_NV_viewport_swizzle 1
|
|
|
|
#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
|
|
|
|
#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkViewportCoordinateSwizzleNV {
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
|
|
|
|
VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
|
|
|
|
} VkViewportCoordinateSwizzleNV;
|
|
|
|
|
|
|
|
typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
|
|
|
|
|
|
|
|
typedef struct VkViewportSwizzleNV {
|
|
|
|
VkViewportCoordinateSwizzleNV x;
|
|
|
|
VkViewportCoordinateSwizzleNV y;
|
|
|
|
VkViewportCoordinateSwizzleNV z;
|
|
|
|
VkViewportCoordinateSwizzleNV w;
|
|
|
|
} VkViewportSwizzleNV;
|
|
|
|
|
|
|
|
typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineViewportSwizzleStateCreateFlagsNV flags;
|
|
|
|
uint32_t viewportCount;
|
|
|
|
const VkViewportSwizzleNV* pViewportSwizzles;
|
|
|
|
} VkPipelineViewportSwizzleStateCreateInfoNV;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_EXT_discard_rectangles 1
|
|
|
|
#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkDiscardRectangleModeEXT {
|
|
|
|
VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
|
|
|
|
VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
|
|
|
|
VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
|
|
|
|
VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
|
|
|
|
VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
|
|
|
|
VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkDiscardRectangleModeEXT;
|
|
|
|
|
|
|
|
typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
|
|
|
|
VkStructureType sType;
|
2017-03-31 23:06:31 +00:00
|
|
|
void* pNext;
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
uint32_t maxDiscardRectangles;
|
|
|
|
} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
|
|
|
|
|
|
|
|
typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
|
|
|
|
VkDiscardRectangleModeEXT discardRectangleMode;
|
|
|
|
uint32_t discardRectangleCount;
|
|
|
|
const VkRect2D* pDiscardRectangles;
|
|
|
|
} VkPipelineDiscardRectangleStateCreateInfoEXT;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
uint32_t firstDiscardRectangle,
|
|
|
|
uint32_t discardRectangleCount,
|
|
|
|
const VkRect2D* pDiscardRectangles);
|
|
|
|
#endif
|
|
|
|
|
2017-03-25 08:46:58 +00:00
|
|
|
#define VK_EXT_swapchain_colorspace 1
|
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
* Bump API patch number and header version number to 55 for this update.
Github Issues:
* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).
Internal Issues:
* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).
Other Commits:
* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.
2017-07-17 00:20:08 +00:00
|
|
|
#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3
|
2017-03-25 08:46:58 +00:00
|
|
|
#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
|
|
|
|
|
|
|
|
|
2017-03-11 01:39:29 +00:00
|
|
|
#define VK_EXT_hdr_metadata 1
|
Change log for March 17, 2017 Vulkan 1.0.44 spec update:
* Bump API patch number and header version number to 44 for this update.
Github Issues:
* Fix description of <<features-extentperimagetype, Allowed Extent Values
Based On Image Type>> (public issue 290).
* Better specify VK_DEVICE_LOST behavior around flink:vkQueueSubmit,
flink:vkWaitForFences, and flink:vkGetFenceStatus (public issue 423).
* Clarify definition of flink:vkGetQueryPoolResults::pname:queryCount
(public issue 441).
* Simplify and clean up normative language. Remove shall and replace
recommend and variants with should wherever possible (public issue 448).
* Fix all dangling internal cross-references in the 1.0-extensions
specification, and add scripts/checkXrefs to find these in the future
(public issue 456).
* Reverse order of ChangeLog.txt entries so the most recent version is
documented first (public issue 463)
* Removes "become invalid" which clashes with invalid state for command
buffers. (public issue 467)
* Disallowed pending state in spec text for vkResetCommandBuffer, matching
valid usage (public issue 468)
* Removes sentence describing invalid state "like initial state". (public
issue 469)
* Disallows begin command buffer from resetting command buffers in the
"recording" state. (public issue 470)
* Removes mention of state from description of
VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT (public issue 471)
* Removed extra valid usage statement in VkSubmitInfo (public issue 472)
Internal Issues:
* Clarify description of the pname:imageLayout member of
sname:VkDescriptorImageInfo.
* Fix typos where etext:VK_VIEW_TYPE* was used instead of
etext:VK_IMAGE_VIEW_TYPE.
* Removed the <<VK_KHR_display>> and <<VK_KHR_display_swapchain>> example
code from the specification and noted it has been moved to the Vulkan
SDK cube demo (internal issue 179).
* Reorder VkExternalMemoryHandleTypeFlagBitsNV description (internal issue
480).
* Clarify than an implementation is
<<fundamentals-validusage-flags,permitted to return 'undefined' bit
flags>> in a bitfield (internal issue 640).
* Break Valid Usage statements describing unrelated parameters into
separate statements, and add a style guide entry to follow this approach
(internal issue 685).
* Move valid usage statement for slink:VkImageCreateInfo from spec body to
the explicit valid usage block (internal issue 693).
* Fix typos in the descriptions of slink:VkDisplaySurfaceCreateInfoKHR,
flink:vkCreateDisplayModeKHR, and
flink:vkGetDisplayPlaneSupportedDisplaysKHR in the <<display,Presenting
Directly to Display Devices>> section (internal issue 698, 704, 716).
* Clarified that mandatory depth/stencil formats are only a requirement
for 2D images (internal issue 719).
* Clarify that variables decorated with DeviceIndex/ViewIndex must be in
the Input storage class (internal issue 733).
* Work around generator script problem with removal of Unicode literals
from Python 3.0-3.2 using `future` package (internal issue 737).
* Remove nonexistent structure type enums from vk.xml (internal issue
738).
* Fix validextensionstructs attributes for structures in the pname:pNext
chain for VkPresentInfoKHR, fixing implicit valid usage statements for
those structures (internal issue 740).
New Extensions:
2017-03-18 05:53:58 +00:00
|
|
|
#define VK_EXT_HDR_METADATA_SPEC_VERSION 1
|
2017-03-11 01:39:29 +00:00
|
|
|
#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
|
|
|
|
|
|
|
|
typedef struct VkXYColorEXT {
|
|
|
|
float x;
|
|
|
|
float y;
|
|
|
|
} VkXYColorEXT;
|
|
|
|
|
|
|
|
typedef struct VkHdrMetadataEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkXYColorEXT displayPrimaryRed;
|
|
|
|
VkXYColorEXT displayPrimaryGreen;
|
|
|
|
VkXYColorEXT displayPrimaryBlue;
|
|
|
|
VkXYColorEXT whitePoint;
|
|
|
|
float maxLuminance;
|
|
|
|
float minLuminance;
|
|
|
|
float maxContentLightLevel;
|
|
|
|
float maxFrameAverageLightLevel;
|
|
|
|
} VkHdrMetadataEXT;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
|
|
|
|
VkDevice device,
|
|
|
|
uint32_t swapchainCount,
|
|
|
|
const VkSwapchainKHR* pSwapchains,
|
|
|
|
const VkHdrMetadataEXT* pMetadata);
|
|
|
|
#endif
|
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** 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_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
#ifdef VK_USE_PLATFORM_IOS_MVK
|
|
|
|
#define VK_MVK_ios_surface 1
|
|
|
|
#define VK_MVK_IOS_SURFACE_SPEC_VERSION 2
|
|
|
|
#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
|
|
|
|
|
|
|
|
typedef VkFlags VkIOSSurfaceCreateFlagsMVK;
|
|
|
|
|
|
|
|
typedef struct VkIOSSurfaceCreateInfoMVK {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkIOSSurfaceCreateFlagsMVK flags;
|
|
|
|
const void* pView;
|
|
|
|
} VkIOSSurfaceCreateInfoMVK;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_IOS_MVK */
|
|
|
|
|
|
|
|
#ifdef VK_USE_PLATFORM_MACOS_MVK
|
|
|
|
#define VK_MVK_macos_surface 1
|
|
|
|
#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2
|
|
|
|
#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
|
|
|
|
|
|
|
|
typedef VkFlags VkMacOSSurfaceCreateFlagsMVK;
|
|
|
|
|
|
|
|
typedef struct VkMacOSSurfaceCreateInfoMVK {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkMacOSSurfaceCreateFlagsMVK flags;
|
|
|
|
const void* pView;
|
|
|
|
} VkMacOSSurfaceCreateInfoMVK;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK(
|
|
|
|
VkInstance instance,
|
|
|
|
const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
#endif
|
|
|
|
#endif /* VK_USE_PLATFORM_MACOS_MVK */
|
|
|
|
|
2017-11-27 09:07:06 +00:00
|
|
|
#define VK_EXT_external_memory_dma_buf 1
|
|
|
|
#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_EXT_queue_family_foreign 1
|
|
|
|
#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
|
|
|
|
#define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2)
|
|
|
|
|
|
|
|
|
Change log for June 24, 2017 Vulkan 1.0.53 spec update:
* Bump API patch number and header version number to 53 for this update.
Github Issues:
Internal Issues:
* Clarify mappings of coordinates for mutable, compatible image views in
slink:VkImageViewCreateInfo (internal issue 815).
* Make ename:VK_BIND_SFR_BIT require a logical device with multiple
physical devices, so that standard sparse image block dimensions are
only required on systems that support multi-GPU (internal issue 835).
* Convert all files from use of // refBegin .. // refEnd comments to
delimit ref pages, to use of open blocks, and update style guide
accordingly (internal issue 839).
* Add valid usage for slink:VkWriteDescriptorSet when performing updates
to a ename:VK_STORAGE_IMAGE descriptor with layout
ename:VK_IMAGE_LAYOUT_GENERAL.
* Add a hack to the validity generator script to support an odd
interaction between flink:vkCmdFillBuffer and an extension (internal
issue 853).
* Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
which was already covered by implicit valid usage (internal issue 854).
* Update implicit validity generator script to properly handle the
pname:sType and pname:pNext members of "returnedonly" structures
(internal issue 874).
* Note that slink:VkApplicationInfo::pname:pApplicationName &
slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
implicit valid usage statements for flink:vkDestroyInstance.
* Added missing valid usage for flink:vkCmdWriteTimestamp to require a
timestamp query pool.
* Simplify and/or split "`non-atomic`" valid usage statements.
New Extensions:
* `VK_AMD_gpu_shader_int16`
* `VK_EXT_blend_operation_advanced`
* `VK_EXT_sampler_filter_minmax`
* `VK_NV_framebuffer_mixed_samples`
-----------------------------------------------------
Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release
combines both change sets.
-----------------------------------------------------
Change log for June 13, 2017 Vulkan 1.0.52 spec update:
* Bump API patch number and header version number to 52 for this update.
Github Issues:
Internal Issues:
* Clarify behavior when non-coherent memory has
<<memory-device-unmap-does-not-flush, not been flushed before being
unmapped>> (internal issue 819).
* Fix description of code:WorkgroupSize builtin to note it decorates an
object, not a variable (internal issue 836).
* Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
equations are rendered properly (internal issue 845).
* Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
section of the Procedures and Conventions document stating that any new
handle type requires a corresponding entry in the elink:VkObjectType
enumerated type (internal issue 856).
* Update style guide to use slink macro for Vulkan handle type names, and
define narrow conditions under which to use the *name and *text macros
instead of *link (internal issue 886).
* Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
appendix.
* Change the copyright on Vulkan specification asciidoc *source* files to
CC-BY 4.0, and update the proprietary Khronos copyright applied to the
generated *output* formats (internal issue 327). This enables broader
re-use and modification of the Vulkan specification sources, while not
affecting the Reciprocal IP License between Vulkan Adopters and Working
Group Members.
New Extensions:
* `VK_NV_fill_rectangle`
* `VK_NV_fragment_coverage_to_color`
2017-06-27 02:32:10 +00:00
|
|
|
#define VK_EXT_sampler_filter_minmax 1
|
|
|
|
#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkSamplerReductionModeEXT {
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT,
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_END_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_MAX_EXT,
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1),
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkSamplerReductionModeEXT;
|
|
|
|
|
|
|
|
typedef struct VkSamplerReductionModeCreateInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSamplerReductionModeEXT reductionMode;
|
|
|
|
} VkSamplerReductionModeCreateInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkBool32 filterMinmaxSingleComponentFormats;
|
|
|
|
VkBool32 filterMinmaxImageComponentMapping;
|
|
|
|
} VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_AMD_gpu_shader_int16 1
|
|
|
|
#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
|
|
|
|
|
|
|
|
|
2017-08-01 00:22:11 +00:00
|
|
|
#define VK_AMD_mixed_attachment_samples 1
|
|
|
|
#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
|
|
|
|
|
|
|
|
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
#define VK_AMD_shader_fragment_mask 1
|
|
|
|
#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
|
|
|
|
#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
|
|
|
|
|
|
|
|
|
2017-08-20 08:06:59 +00:00
|
|
|
#define VK_EXT_shader_stencil_export 1
|
|
|
|
#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
|
|
|
|
|
|
|
|
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
#define VK_EXT_sample_locations 1
|
|
|
|
#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
|
|
|
|
|
|
|
|
typedef struct VkSampleLocationEXT {
|
|
|
|
float x;
|
|
|
|
float y;
|
|
|
|
} VkSampleLocationEXT;
|
|
|
|
|
|
|
|
typedef struct VkSampleLocationsInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkSampleCountFlagBits sampleLocationsPerPixel;
|
|
|
|
VkExtent2D sampleLocationGridSize;
|
|
|
|
uint32_t sampleLocationsCount;
|
|
|
|
const VkSampleLocationEXT* pSampleLocations;
|
|
|
|
} VkSampleLocationsInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkAttachmentSampleLocationsEXT {
|
|
|
|
uint32_t attachmentIndex;
|
|
|
|
VkSampleLocationsInfoEXT sampleLocationsInfo;
|
|
|
|
} VkAttachmentSampleLocationsEXT;
|
|
|
|
|
|
|
|
typedef struct VkSubpassSampleLocationsEXT {
|
|
|
|
uint32_t subpassIndex;
|
|
|
|
VkSampleLocationsInfoEXT sampleLocationsInfo;
|
|
|
|
} VkSubpassSampleLocationsEXT;
|
|
|
|
|
|
|
|
typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
uint32_t attachmentInitialSampleLocationsCount;
|
|
|
|
const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
|
|
|
|
uint32_t postSubpassSampleLocationsCount;
|
Change log for October 6, 2017 Vulkan 1.0.62 spec update:
* Bump API patch number and header version number to 62 for this update.
Github Issues:
* Move asciidoc conditionals for `VK_KHR_maintenance1` in
slink:VkDescriptorSetAllocateInfo so valid usage statements for
`VK_KHR_push_descriptor` aren't accidentally removed when the first
extension isn't enabled (public issue 573).
* Fixed errors in API example code for
flink:vkUpdateDescriptorSetWithTemplateKHR and
flink:vkCmdPushDescriptorSetWithTemplateKHR (public issue 577).
Internal Issues:
* Specify constraints on concurrent access to fences that share payload in
the <<synchronization-fences-importing, Importing Fence Payloads>> and
<<synchronization-semaphores-waiting-state, Semaphore State Requirements
For Wait Operations>> sections (internal issue 820).
* Define the term "`retired swapchain`", reorganize some swapchain
language, and improve language for pname:oldSwapchain in
flink:VkSwapchainCreateInfoKHR, the <<swapchain-wsi-image-create-info>>
table, flink:vkDestroySwapchainKHR, and flink:vkAcquireNextImage2KHX
(internal issue 869).
* Describe in the <<writing-arrays, Describing Properties of Array
Elements>> section of the style guide how and when to use "`each`" and
"`any`" to refer to properties of array elements, and make those uses in
the specification consistent (internal issue 884).
* Clarified that events cannot be used for cross-queue synchronization in
the <<synchronization-events, Events>> section and for
flink:vkCmdWaitEvents (internal issue 970).
* Add success and error codes to +vk.xml+ for
flink:vkCreateValidationCacheEXT (internal issue 995).
* Clarify aspect mask usage for image memory barriers of multi-plane
images in slink:VkImageSubresourceRange, slink:VkImageMemoryBarrier, and
the <<textures-layout-validation, Layout Validation>> section (internal
issue 996).
Other Issues:
* Fixed typo in flink:VkRenderPassSampleLocationsBeginInfoEXT (renamed
field pname:pSubpassSampleLocations to
pname:pPostSubpassSampleLocations).
* Add missing buffer usage requirements for indirect draws in
flink:vkCmdDrawIndirect, flink:vkCmdDrawIndirectCountAMD,
flink:vkCmdDrawIndexedIndirect, and
flink:vlCmdDrawIndexedIndirectCountAMD.
* Modify Makefile to allow specification to build in git "`detached HEAD`"
state.
* Update valid usage ID generation script to allow recursively operating
on all `.txt` files in a specified directory, and move the `startVUID`
tracking information into a separate python file that is automatically
updated by the script.
New Extensions:
* Add +vk.xml+ entries for pending `VK_ANDROID_native_buffer` extension
(note, this extension is not yet enabled).
* `VK_AMD_shader_image_load_store_lod`
2017-10-07 04:51:59 +00:00
|
|
|
const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
} VkRenderPassSampleLocationsBeginInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBool32 sampleLocationsEnable;
|
|
|
|
VkSampleLocationsInfoEXT sampleLocationsInfo;
|
|
|
|
} VkPipelineSampleLocationsStateCreateInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkSampleCountFlags sampleLocationSampleCounts;
|
|
|
|
VkExtent2D maxSampleLocationGridSize;
|
|
|
|
float sampleLocationCoordinateRange[2];
|
|
|
|
uint32_t sampleLocationSubPixelBits;
|
|
|
|
VkBool32 variableSampleLocations;
|
|
|
|
} VkPhysicalDeviceSampleLocationsPropertiesEXT;
|
|
|
|
|
|
|
|
typedef struct VkMultisamplePropertiesEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkExtent2D maxSampleLocationGridSize;
|
|
|
|
} VkMultisamplePropertiesEXT;
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
|
|
|
|
VkPhysicalDevice physicalDevice,
|
|
|
|
VkSampleCountFlagBits samples,
|
|
|
|
VkMultisamplePropertiesEXT* pMultisampleProperties);
|
|
|
|
#endif
|
|
|
|
|
Change log for June 24, 2017 Vulkan 1.0.53 spec update:
* Bump API patch number and header version number to 53 for this update.
Github Issues:
Internal Issues:
* Clarify mappings of coordinates for mutable, compatible image views in
slink:VkImageViewCreateInfo (internal issue 815).
* Make ename:VK_BIND_SFR_BIT require a logical device with multiple
physical devices, so that standard sparse image block dimensions are
only required on systems that support multi-GPU (internal issue 835).
* Convert all files from use of // refBegin .. // refEnd comments to
delimit ref pages, to use of open blocks, and update style guide
accordingly (internal issue 839).
* Add valid usage for slink:VkWriteDescriptorSet when performing updates
to a ename:VK_STORAGE_IMAGE descriptor with layout
ename:VK_IMAGE_LAYOUT_GENERAL.
* Add a hack to the validity generator script to support an odd
interaction between flink:vkCmdFillBuffer and an extension (internal
issue 853).
* Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
which was already covered by implicit valid usage (internal issue 854).
* Update implicit validity generator script to properly handle the
pname:sType and pname:pNext members of "returnedonly" structures
(internal issue 874).
* Note that slink:VkApplicationInfo::pname:pApplicationName &
slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
implicit valid usage statements for flink:vkDestroyInstance.
* Added missing valid usage for flink:vkCmdWriteTimestamp to require a
timestamp query pool.
* Simplify and/or split "`non-atomic`" valid usage statements.
New Extensions:
* `VK_AMD_gpu_shader_int16`
* `VK_EXT_blend_operation_advanced`
* `VK_EXT_sampler_filter_minmax`
* `VK_NV_framebuffer_mixed_samples`
-----------------------------------------------------
Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release
combines both change sets.
-----------------------------------------------------
Change log for June 13, 2017 Vulkan 1.0.52 spec update:
* Bump API patch number and header version number to 52 for this update.
Github Issues:
Internal Issues:
* Clarify behavior when non-coherent memory has
<<memory-device-unmap-does-not-flush, not been flushed before being
unmapped>> (internal issue 819).
* Fix description of code:WorkgroupSize builtin to note it decorates an
object, not a variable (internal issue 836).
* Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
equations are rendered properly (internal issue 845).
* Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
section of the Procedures and Conventions document stating that any new
handle type requires a corresponding entry in the elink:VkObjectType
enumerated type (internal issue 856).
* Update style guide to use slink macro for Vulkan handle type names, and
define narrow conditions under which to use the *name and *text macros
instead of *link (internal issue 886).
* Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
appendix.
* Change the copyright on Vulkan specification asciidoc *source* files to
CC-BY 4.0, and update the proprietary Khronos copyright applied to the
generated *output* formats (internal issue 327). This enables broader
re-use and modification of the Vulkan specification sources, while not
affecting the Reciprocal IP License between Vulkan Adopters and Working
Group Members.
New Extensions:
* `VK_NV_fill_rectangle`
* `VK_NV_fragment_coverage_to_color`
2017-06-27 02:32:10 +00:00
|
|
|
#define VK_EXT_blend_operation_advanced 1
|
|
|
|
#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
|
|
|
|
#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkBlendOverlapEXT {
|
|
|
|
VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
|
|
|
|
VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
|
|
|
|
VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
|
|
|
|
VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
|
|
|
|
VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT,
|
|
|
|
VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1),
|
|
|
|
VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkBlendOverlapEXT;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkBool32 advancedBlendCoherentOperations;
|
|
|
|
} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
uint32_t advancedBlendMaxColorAttachments;
|
|
|
|
VkBool32 advancedBlendIndependentBlend;
|
|
|
|
VkBool32 advancedBlendNonPremultipliedSrcColor;
|
|
|
|
VkBool32 advancedBlendNonPremultipliedDstColor;
|
|
|
|
VkBool32 advancedBlendCorrelatedOverlap;
|
|
|
|
VkBool32 advancedBlendAllOperations;
|
|
|
|
} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
|
|
|
|
|
|
|
|
typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkBool32 srcPremultiplied;
|
|
|
|
VkBool32 dstPremultiplied;
|
|
|
|
VkBlendOverlapEXT blendOverlap;
|
|
|
|
} VkPipelineColorBlendAdvancedStateCreateInfoEXT;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_NV_fragment_coverage_to_color 1
|
|
|
|
#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
|
|
|
|
#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
|
|
|
|
|
|
|
|
typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
|
|
|
|
|
|
|
|
typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineCoverageToColorStateCreateFlagsNV flags;
|
|
|
|
VkBool32 coverageToColorEnable;
|
|
|
|
uint32_t coverageToColorLocation;
|
|
|
|
} VkPipelineCoverageToColorStateCreateInfoNV;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_NV_framebuffer_mixed_samples 1
|
|
|
|
#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
|
|
|
|
#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkCoverageModulationModeNV {
|
|
|
|
VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
|
|
|
|
VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
|
|
|
|
VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
|
|
|
|
VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
|
|
|
|
VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV,
|
|
|
|
VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV,
|
|
|
|
VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1),
|
|
|
|
VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
|
|
|
|
} VkCoverageModulationModeNV;
|
|
|
|
|
|
|
|
typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
|
|
|
|
|
|
|
|
typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkPipelineCoverageModulationStateCreateFlagsNV flags;
|
|
|
|
VkCoverageModulationModeNV coverageModulationMode;
|
|
|
|
VkBool32 coverageModulationTableEnable;
|
|
|
|
uint32_t coverageModulationTableCount;
|
|
|
|
const float* pCoverageModulationTable;
|
|
|
|
} VkPipelineCoverageModulationStateCreateInfoNV;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VK_NV_fill_rectangle 1
|
|
|
|
#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
|
|
|
|
#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
|
|
|
|
|
|
|
|
|
2017-08-01 00:22:11 +00:00
|
|
|
#define VK_EXT_post_depth_coverage 1
|
|
|
|
#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
|
|
|
|
|
|
|
|
|
Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.
Github Issues:
* Document that <<queries-timestamps, Timestamp Queries>> can only be
meaningfully compared when they are written from the same queue (public
issue 216).
* Document that the `<extension>` tag `type` attribute is required for
non-disabled extensions (derived from, but does not close public issue
354).
* Clean up registry schema length attribute descriptions to be consistent
and correct (public issue 555).
Internal Issues:
* Replace as much of the hand-written extension appendix metadata as
possible with asciidoc includes generated from corresponding attributes
of +vk.xml+, and enhance the style guide to match. This avoids
inconsistencies between +vk.xml+ and the appendices, and produces a more
uniform style (internal issue 137).
* Remove the generated extDependency.{py,sh} files from the tree and
create them dynamically on demand instead, reducing merge conflicts
(internal issue 713).
* Add a prototype tool for generating in-place difference markup for
sections guarded by asciidoc conditionals, and new syntax for open
blocks to support it (internal issue 833).
* Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
types to the same physical device in the
slink:VkPhysicalDeviceIDPropertiesKHR,
flink:VkImportMemoryWin32HandleInfoKHR,
slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
slink:VkImportSemaphoreWin32HandleInfoKHR,
slink:VkImportSemaphoreFdInfoKHR
<<external-memory-handle-types-compatibility, External memory handle
types compatibility>>, <<external-semaphore-handle-types-compatibility,
External semaphore handle types compatibility>>, and
<<external-fence-handle-types-compatibility, External fence handle types
compatibility>> sections (internal issue 956).
Other Issues:
* Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
is an interaction, but not a strict dependency), and add a new
`extension` attribute to the `<require` XML tag to allow classifying a
subset of interfaces of an extension as requiring another extension.
Update the registry schema and documentation accordingly.
New Extensions:
* `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
GLSL extension)
* `VK_EXT_sample_locations`
* `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
|
|
|
#define VK_EXT_validation_cache 1
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
|
|
|
|
|
|
|
|
#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkValidationCacheHeaderVersionEXT {
|
|
|
|
VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
|
|
|
|
VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
|
|
|
|
VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
|
|
|
|
VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1),
|
|
|
|
VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkValidationCacheHeaderVersionEXT;
|
|
|
|
|
|
|
|
typedef VkFlags VkValidationCacheCreateFlagsEXT;
|
|
|
|
|
|
|
|
typedef struct VkValidationCacheCreateInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkValidationCacheCreateFlagsEXT flags;
|
|
|
|
size_t initialDataSize;
|
|
|
|
const void* pInitialData;
|
|
|
|
} VkValidationCacheCreateInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkValidationCacheEXT validationCache;
|
|
|
|
} VkShaderModuleValidationCacheCreateInfoEXT;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
|
|
|
|
VkDevice device,
|
|
|
|
const VkValidationCacheCreateInfoEXT* pCreateInfo,
|
|
|
|
const VkAllocationCallbacks* pAllocator,
|
|
|
|
VkValidationCacheEXT* pValidationCache);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
|
|
|
|
VkDevice device,
|
|
|
|
VkValidationCacheEXT validationCache,
|
|
|
|
const VkAllocationCallbacks* pAllocator);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
|
|
|
|
VkDevice device,
|
|
|
|
VkValidationCacheEXT dstCache,
|
|
|
|
uint32_t srcCacheCount,
|
|
|
|
const VkValidationCacheEXT* pSrcCaches);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
|
|
|
|
VkDevice device,
|
|
|
|
VkValidationCacheEXT validationCache,
|
|
|
|
size_t* pDataSize,
|
|
|
|
void* pData);
|
|
|
|
#endif
|
|
|
|
|
Change log for August 14, 2017 Vulkan 1.0.58 spec update:
* Bump API patch number and header version number to 58 for this update.
Github Issues:
* Update the <<interfaces-resources-descset,Descriptor Set Interface>>
section to allow multiple variables with the same descriptor set/binding
decorations, and require that all variables that are statically used
must be consistent with the pipeline layout. Allow
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER to be used with texture
and sampler variables (public issues 522, 524).
Internal Issues:
* Replace networkx package used for extension dependency generation with a
homegrown network dependency traverser (internal issue 713).
* Specify in the <<interfaces-fragmentoutput, Fragment Output Interface>>
section that if a fragment shader writes integers that cannot be
represented in the format of the colour attachment, then the result is
undefined (internal issue 893).
* Separate malformed valid usage statement for
slink:VkPipelineRasterizationStateCreateInfo into two (internal issue
918).
* Fix cases where the term 'pNext chain' is incorrectly used in reference
to functions, rather than their parameters. Replace 'pNext list' with
'pNext chain'. Fixed typo in the example code of
+VK_KHR_dedicated_allocation+ (internal issue 944).
* Fix typo in elink:VkExternalSemaphoreHandleTypeFlagBitsKHR enum
descriptions, replacing
etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR with
ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR, and make the
description more consistent with
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR (internal issue 950).
Other Issues:
* Clarify how pipeline stage masks affect
<<synchronization-pipeline-stages-masks, access and synchronization
scopes>>.
* Clarify that dedicated allocations do not allow aliasing in the
flink:vkBindBufferMemory and flink:vkBindImageMemory valid usage
statements.
* Correct specification of pname:dynamicCount for push_constant token in
slink:VkIndirectCommandsLayoutNVX.
New Extensions:
* `VK_EXT_shader_viewport_index_layer`
2017-08-14 08:58:07 +00:00
|
|
|
#define VK_EXT_shader_viewport_index_layer 1
|
|
|
|
#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
|
|
|
|
|
|
|
|
|
Change log for October 13, 2017 Vulkan 1.0.63 spec update:
* Bump API patch number and header version number to 63 for this update.
Github Issues:
* Add missing valid usage statements for ptext:maxDescriptorSets*,
ptext:maxPerStageDescriptorInputAttachments, and
ptext:maxPerStageResources to slink:VkPipelineLayoutCreateInfo.txt,
flink:VkComputePipelineCreateInfo, and
flink:VkGraphicsPipelineCreateInfo (public issue 546).
* Fix typos in ftext:vkCmdDraw*AMD descriptions (public pull request 549).
* Fixed flink:vkCmdWriteTimestamp so it is not unnecessarily restricted to
queues supporting graphics or compute operations (public issue 558).
* Improvements to valid usage generator for output `*Flags` pointer
parameters and for some `void *` parameters (public pull requests 560,
562).
* Document `altlen` attribute in XML schema as valid C99 syntax and tweak
`vk.xml` to match (public pull request 566).
* Clarify when pname:fence is signaled by flink:vkQueueSubmit in a more
obvious place (public issue 577).
Internal Issues:
* Specify a whitelist of supported SPIR-V Storage Classes in the
<<spirvenv-module-validation, Validation Rules within a Module>>
appendix (internal SPIR-V issue 166).
* Relax the shared semaphore wait timeout requirement in the
<<synchronization-semaphores-importing, Importing Semaphore Payloads>>
section (internal issue 820).
* Update the <<textures-image-level-selection, Image Level(s) Selection>>
equations so that the parameters returned by the level-of-detail query
appear explicitly, also fixing the issue that linear filtering would
select a level below the base level for magnification (internal issue
926).
* Disallow creation of a swapchain with zero pname:imageExtent in
slink:VkSurfaceCapabilitiesKHR and slink:VkSwapchainCreateInfoKHR
(internal issue 1020).
Other Issues:
* Clarify in <<textures-operation-validation,Image View Validation>> that
the layout of subresources in an image view must have a layout that
matches that written into the descriptor, and that this section is about
validating image views, not images.
New Extensions:
* `VK_EXT_global_priority`
2017-10-13 02:57:47 +00:00
|
|
|
#define VK_EXT_global_priority 1
|
2017-11-27 09:07:06 +00:00
|
|
|
#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
|
Change log for October 13, 2017 Vulkan 1.0.63 spec update:
* Bump API patch number and header version number to 63 for this update.
Github Issues:
* Add missing valid usage statements for ptext:maxDescriptorSets*,
ptext:maxPerStageDescriptorInputAttachments, and
ptext:maxPerStageResources to slink:VkPipelineLayoutCreateInfo.txt,
flink:VkComputePipelineCreateInfo, and
flink:VkGraphicsPipelineCreateInfo (public issue 546).
* Fix typos in ftext:vkCmdDraw*AMD descriptions (public pull request 549).
* Fixed flink:vkCmdWriteTimestamp so it is not unnecessarily restricted to
queues supporting graphics or compute operations (public issue 558).
* Improvements to valid usage generator for output `*Flags` pointer
parameters and for some `void *` parameters (public pull requests 560,
562).
* Document `altlen` attribute in XML schema as valid C99 syntax and tweak
`vk.xml` to match (public pull request 566).
* Clarify when pname:fence is signaled by flink:vkQueueSubmit in a more
obvious place (public issue 577).
Internal Issues:
* Specify a whitelist of supported SPIR-V Storage Classes in the
<<spirvenv-module-validation, Validation Rules within a Module>>
appendix (internal SPIR-V issue 166).
* Relax the shared semaphore wait timeout requirement in the
<<synchronization-semaphores-importing, Importing Semaphore Payloads>>
section (internal issue 820).
* Update the <<textures-image-level-selection, Image Level(s) Selection>>
equations so that the parameters returned by the level-of-detail query
appear explicitly, also fixing the issue that linear filtering would
select a level below the base level for magnification (internal issue
926).
* Disallow creation of a swapchain with zero pname:imageExtent in
slink:VkSurfaceCapabilitiesKHR and slink:VkSwapchainCreateInfoKHR
(internal issue 1020).
Other Issues:
* Clarify in <<textures-operation-validation,Image View Validation>> that
the layout of subresources in an image view must have a layout that
matches that written into the descriptor, and that this section is about
validating image views, not images.
New Extensions:
* `VK_EXT_global_priority`
2017-10-13 02:57:47 +00:00
|
|
|
#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkQueueGlobalPriorityEXT {
|
2017-11-27 09:07:06 +00:00
|
|
|
VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
|
|
|
|
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
|
|
|
|
VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
|
|
|
|
VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
|
|
|
|
VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
|
|
|
|
VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT,
|
|
|
|
VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1),
|
Change log for October 13, 2017 Vulkan 1.0.63 spec update:
* Bump API patch number and header version number to 63 for this update.
Github Issues:
* Add missing valid usage statements for ptext:maxDescriptorSets*,
ptext:maxPerStageDescriptorInputAttachments, and
ptext:maxPerStageResources to slink:VkPipelineLayoutCreateInfo.txt,
flink:VkComputePipelineCreateInfo, and
flink:VkGraphicsPipelineCreateInfo (public issue 546).
* Fix typos in ftext:vkCmdDraw*AMD descriptions (public pull request 549).
* Fixed flink:vkCmdWriteTimestamp so it is not unnecessarily restricted to
queues supporting graphics or compute operations (public issue 558).
* Improvements to valid usage generator for output `*Flags` pointer
parameters and for some `void *` parameters (public pull requests 560,
562).
* Document `altlen` attribute in XML schema as valid C99 syntax and tweak
`vk.xml` to match (public pull request 566).
* Clarify when pname:fence is signaled by flink:vkQueueSubmit in a more
obvious place (public issue 577).
Internal Issues:
* Specify a whitelist of supported SPIR-V Storage Classes in the
<<spirvenv-module-validation, Validation Rules within a Module>>
appendix (internal SPIR-V issue 166).
* Relax the shared semaphore wait timeout requirement in the
<<synchronization-semaphores-importing, Importing Semaphore Payloads>>
section (internal issue 820).
* Update the <<textures-image-level-selection, Image Level(s) Selection>>
equations so that the parameters returned by the level-of-detail query
appear explicitly, also fixing the issue that linear filtering would
select a level below the base level for magnification (internal issue
926).
* Disallow creation of a swapchain with zero pname:imageExtent in
slink:VkSurfaceCapabilitiesKHR and slink:VkSwapchainCreateInfoKHR
(internal issue 1020).
Other Issues:
* Clarify in <<textures-operation-validation,Image View Validation>> that
the layout of subresources in an image view must have a layout that
matches that written into the descriptor, and that this section is about
validating image views, not images.
New Extensions:
* `VK_EXT_global_priority`
2017-10-13 02:57:47 +00:00
|
|
|
VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
|
} VkQueueGlobalPriorityEXT;
|
|
|
|
|
|
|
|
typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkQueueGlobalPriorityEXT globalPriority;
|
|
|
|
} VkDeviceQueueGlobalPriorityCreateInfoEXT;
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-27 09:07:06 +00:00
|
|
|
#define VK_EXT_external_memory_host 1
|
|
|
|
#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
|
|
|
|
#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
|
|
|
|
|
|
|
|
typedef struct VkImportMemoryHostPointerInfoEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
const void* pNext;
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType;
|
|
|
|
void* pHostPointer;
|
|
|
|
} VkImportMemoryHostPointerInfoEXT;
|
|
|
|
|
|
|
|
typedef struct VkMemoryHostPointerPropertiesEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
uint32_t memoryTypeBits;
|
|
|
|
} VkMemoryHostPointerPropertiesEXT;
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
|
|
|
|
VkStructureType sType;
|
|
|
|
void* pNext;
|
|
|
|
VkDeviceSize minImportedHostPointerAlignment;
|
|
|
|
} VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
|
|
|
|
VkDevice device,
|
|
|
|
VkExternalMemoryHandleTypeFlagBitsKHR handleType,
|
|
|
|
const void* pHostPointer,
|
|
|
|
VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
|
|
|
|
#endif
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|