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.
|
|
|
|
//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0)
|
|
|
|
|
|
|
|
// Vulkan 1.0 version number
|
|
|
|
#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 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-02-17 11:57:46 +00:00
|
|
|
#define VK_HEADER_VERSION 41
|
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,
|
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,
|
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,
|
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 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 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_SURFACE_CAPABILITIES2_EXT = 1000090000,
|
|
|
|
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,
|
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,
|
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,
|
|
|
|
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,
|
|
|
|
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,
|
|
|
|
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,
|
|
|
|
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;
|
|
|
|
|
|
|
|
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 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 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 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 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 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 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;
|
|
|
|
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;
|
|
|
|
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 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 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;
|
|
|
|
|
|
|
|
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 void (VKAPI_PTR *PFN_vkVoidFunction)(void);
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
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);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
|
|
|
|
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,
|
|
|
|
uint32_t x,
|
|
|
|
uint32_t y,
|
|
|
|
uint32_t z);
|
|
|
|
|
|
|
|
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,
|
|
|
|
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 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"
|
|
|
|
|
|
|
|
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>
|
|
|
|
|
|
|
|
#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 5
|
|
|
|
#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>
|
|
|
|
|
|
|
|
#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5
|
|
|
|
#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
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
#define VK_EXT_debug_report 1
|
|
|
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
|
|
|
|
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_REPORT_SPEC_VERSION 5
|
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
|
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,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_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 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,
|
2016-12-11 04:59:58 +00:00
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
|
|
|
|
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
|
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 VkDebugReportErrorEXT {
|
|
|
|
VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
|
|
|
|
VK_DEBUG_REPORT_ERROR_CALLBACK_REF_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_ERROR_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_ERROR_NONE_EXT,
|
|
|
|
VK_DEBUG_REPORT_ERROR_END_RANGE_EXT = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT,
|
|
|
|
VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT - VK_DEBUG_REPORT_ERROR_NONE_EXT + 1),
|
|
|
|
VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT = 0x7FFFFFFF
|
2016-02-16 09:53:44 +00:00
|
|
|
} VkDebugReportErrorEXT;
|
|
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
|
|
|
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
|
|
|
|
|
|
|
#ifndef VK_NO_PROTOTYPES
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
|
|
|
|
VkDevice device,
|
|
|
|
VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
|
|
|
|
VkDevice device,
|
|
|
|
VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
|
|
|
|
VkCommandBuffer commandBuffer);
|
|
|
|
|
|
|
|
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
|
|
|
|
VkCommandBuffer commandBuffer,
|
|
|
|
VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
|
|
|
#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
|
|
|
|
|
|
|
|
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 */
|
|
|
|
|
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,
|
|
|
|
VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
|
|
|
|
VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
|
|
|
|
VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
|
|
|
|
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 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)
|
|
|
|
|
|
|
|
#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
|
|
|
|
#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum VkIndirectCommandsTokenTypeNVX {
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX = 0,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_DESCRIPTOR_SET_NVX = 1,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_INDEX_BUFFER_NVX = 2,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_VERTEX_BUFFER_NVX = 3,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_PUSH_CONSTANT_NVX = 4,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_DRAW_INDEXED_NVX = 5,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_DRAW_NVX = 6,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX = 7,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX,
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX + 1),
|
|
|
|
VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
|
|
|
|
} VkIndirectCommandsTokenTypeNVX;
|
|
|
|
|
|
|
|
typedef enum VkObjectEntryTypeNVX {
|
|
|
|
VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX = 0,
|
|
|
|
VK_OBJECT_ENTRY_PIPELINE_NVX = 1,
|
|
|
|
VK_OBJECT_ENTRY_INDEX_BUFFER_NVX = 2,
|
|
|
|
VK_OBJECT_ENTRY_VERTEX_BUFFER_NVX = 3,
|
|
|
|
VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX = 4,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX,
|
|
|
|
VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX + 1),
|
|
|
|
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 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"
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|