mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-22 11:08:19 +00:00
Merge branch '1.0' into 1.0-VK_KHR_xlib_surface
This commit is contained in:
commit
1a0e1d20a4
@ -33,8 +33,8 @@ Status
|
|||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
Last Modified Date: 20-Jul-2016
|
Last Modified Date: 1-Aug-2016
|
||||||
Revision: 31
|
Revision: 32
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ Overview
|
|||||||
The following features are removed:
|
The following features are removed:
|
||||||
* default uniforms (uniform variables not inside a uniform block),
|
* default uniforms (uniform variables not inside a uniform block),
|
||||||
except for opaque types
|
except for opaque types
|
||||||
* atomic-counter bindings: atomic counters form a one-dimensional space
|
* atomic-counters (those based on atomic_uint)
|
||||||
* subroutines
|
* subroutines
|
||||||
* shared and packed block layouts
|
* shared and packed block layouts
|
||||||
* the already deprecated texturing functions (e.g., texture2D())
|
* the already deprecated texturing functions (e.g., texture2D())
|
||||||
@ -324,7 +324,7 @@ Overview
|
|||||||
in / out variable -> Input/Output, possibly with block (below)
|
in / out variable -> Input/Output, possibly with block (below)
|
||||||
in / out block... -> Input/Output, with Block decoration
|
in / out block... -> Input/Output, with Block decoration
|
||||||
buffer blockN { ... } ...; -> Uniform, with BufferBlock decoration
|
buffer blockN { ... } ...; -> Uniform, with BufferBlock decoration
|
||||||
... uniform atomic_uint ... -> AtomicCounter
|
N/A -> AtomicCounter
|
||||||
shared -> Workgroup
|
shared -> Workgroup
|
||||||
<normal global> -> Private
|
<normal global> -> Private
|
||||||
|
|
||||||
@ -426,13 +426,13 @@ Overview
|
|||||||
|
|
||||||
% -> OpUMod/OpSMod
|
% -> OpUMod/OpSMod
|
||||||
mod() -> OpFMod
|
mod() -> OpFMod
|
||||||
NA -> OpSRem/OpFRem
|
N/A -> OpSRem/OpFRem
|
||||||
|
|
||||||
atomicExchange() -> OpAtomicExchange
|
atomicExchange() -> OpAtomicExchange
|
||||||
imageAtomicExchange() -> OpAtomicExchange
|
imageAtomicExchange() -> OpAtomicExchange
|
||||||
atomicCompSwap() -> OpAtomicCompareExchange
|
atomicCompSwap() -> OpAtomicCompareExchange
|
||||||
imageAtomicCompSwap() -> OpAtomicCompareExchange
|
imageAtomicCompSwap() -> OpAtomicCompareExchange
|
||||||
NA -> OpAtomicCompareExchangeWeak
|
N/A -> OpAtomicCompareExchangeWeak
|
||||||
|
|
||||||
Changes to Chapter 1 of the OpenGL Shading Language Specification
|
Changes to Chapter 1 of the OpenGL Shading Language Specification
|
||||||
|
|
||||||
@ -497,10 +497,17 @@ Changes to Chapter 3 of the OpenGL Shading Language Specification
|
|||||||
subpassInput isubpassInput usubpassInput
|
subpassInput isubpassInput usubpassInput
|
||||||
subpassInputMS isubpassInputMS usubpassInputMS
|
subpassInputMS isubpassInputMS usubpassInputMS
|
||||||
|
|
||||||
|
Move the following keywords in section 3.6 Keywords to the reserved
|
||||||
|
section:
|
||||||
|
|
||||||
|
atomic_uint
|
||||||
|
subroutine
|
||||||
|
|
||||||
Changes to Chapter 4 of the OpenGL Shading Language Specification
|
Changes to Chapter 4 of the OpenGL Shading Language Specification
|
||||||
|
|
||||||
Add into the tables in section 4.1, interleaved with the existing types,
|
Add into the tables in section 4.1 Basic Types, interleaved with the
|
||||||
using the existing descriptions (when not supplied below):
|
existing types, using the existing descriptions (when not supplied
|
||||||
|
below):
|
||||||
|
|
||||||
Floating-Point Opaque Types
|
Floating-Point Opaque Types
|
||||||
|
|
||||||
@ -555,6 +562,10 @@ Changes to Chapter 4 of the OpenGL Shading Language Specification
|
|||||||
usubpassInputMS | a handle for accessing a multi-sampled unsigned
|
usubpassInputMS | a handle for accessing a multi-sampled unsigned
|
||||||
| integer subpass input
|
| integer subpass input
|
||||||
|
|
||||||
|
Remove the entry from the table in section 4.1 Basic Types:
|
||||||
|
|
||||||
|
atomic_uint
|
||||||
|
|
||||||
Add a new category in this section
|
Add a new category in this section
|
||||||
|
|
||||||
"Sampler Opaque Types
|
"Sampler Opaque Types
|
||||||
@ -608,11 +619,7 @@ Changes to Chapter 4 of the OpenGL Shading Language Specification
|
|||||||
"Subpass input types are only available in fragment shaders. It is a
|
"Subpass input types are only available in fragment shaders. It is a
|
||||||
compile-time error to use them in any other stage."
|
compile-time error to use them in any other stage."
|
||||||
|
|
||||||
Add to section 4.1.7.3 Atomic Counters:
|
Remove the section 4.1.7.3 Atomic Counters
|
||||||
|
|
||||||
"It is an error to declare an atomic type with a different precision or
|
|
||||||
to specify the default precision for an atomic type to be lowp or
|
|
||||||
mediump."
|
|
||||||
|
|
||||||
Change section 4.3.3 Constant Expressions:
|
Change section 4.3.3 Constant Expressions:
|
||||||
|
|
||||||
@ -765,6 +772,9 @@ Changes to Chapter 4 of the OpenGL Shading Language Specification
|
|||||||
"It is a compile-time error for either the /set/ or /binding/ value
|
"It is a compile-time error for either the /set/ or /binding/ value
|
||||||
to exceed a front-end-configuration supplied maximum value."
|
to exceed a front-end-configuration supplied maximum value."
|
||||||
|
|
||||||
|
Remove mention of subroutine throughout section 4.4 Layout Qualifiers,
|
||||||
|
including removal of section 4.4.4 Subroutine Function Layout Qualifiers.
|
||||||
|
|
||||||
Change section 4.4.6 Opaque-Uniform Layout Qualifiers:
|
Change section 4.4.6 Opaque-Uniform Layout Qualifiers:
|
||||||
|
|
||||||
Change
|
Change
|
||||||
@ -779,6 +789,8 @@ Changes to Chapter 4 of the OpenGL Shading Language Specification
|
|||||||
takes just the provided binding number. The next consecutive binding
|
takes just the provided binding number. The next consecutive binding
|
||||||
number is available for a different object."
|
number is available for a different object."
|
||||||
|
|
||||||
|
Remove section 4.4.6.1 Atomic Counter Layout Qualifiers
|
||||||
|
|
||||||
Add a new subsection at the end of section 4.4:
|
Add a new subsection at the end of section 4.4:
|
||||||
|
|
||||||
"4.4.x Specialization-Constant Qualifier
|
"4.4.x Specialization-Constant Qualifier
|
||||||
@ -1023,6 +1035,11 @@ Changes to Chapter 5 of the OpenGL Shading Language Specification
|
|||||||
* logical operations ( && , || , ^^ )
|
* logical operations ( && , || , ^^ )
|
||||||
* comparison ( == , != )
|
* comparison ( == , != )
|
||||||
|
|
||||||
|
Changes to Chapter 6 of the OpenGL Shading Language Specification
|
||||||
|
|
||||||
|
Remove mention of subroutine throughout, including removal of
|
||||||
|
section 6.1.2 Subroutines.
|
||||||
|
|
||||||
Changes to Chapter 7 of the OpenGL Shading Language Specification
|
Changes to Chapter 7 of the OpenGL Shading Language Specification
|
||||||
|
|
||||||
Changes to section 7.1 Built-In Language Variables
|
Changes to section 7.1 Built-In Language Variables
|
||||||
@ -1104,7 +1121,6 @@ Changes to Chapter 8 of the OpenGL Shading Language Specification
|
|||||||
|
|
||||||
Add precision qualifiers to the following in desktop versions:
|
Add precision qualifiers to the following in desktop versions:
|
||||||
|
|
||||||
|
|
||||||
genIType floatBitsToInt (highp genFType value)
|
genIType floatBitsToInt (highp genFType value)
|
||||||
genUType floatBitsToUint(highp genFType value)
|
genUType floatBitsToUint(highp genFType value)
|
||||||
genFType intBitsToFloat (highp genIType value)
|
genFType intBitsToFloat (highp genIType value)
|
||||||
@ -1134,6 +1150,8 @@ Changes to Chapter 8 of the OpenGL Shading Language Specification
|
|||||||
void imulExtended(highp genIType x, highp genIType y,
|
void imulExtended(highp genIType x, highp genIType y,
|
||||||
out highp genIType msb, out highp genIType lsb)
|
out highp genIType msb, out highp genIType lsb)
|
||||||
|
|
||||||
|
Remove section 8.10 Atomic-Counter Functions
|
||||||
|
|
||||||
Add a section
|
Add a section
|
||||||
|
|
||||||
"8.X Subpass Functions
|
"8.X Subpass Functions
|
||||||
@ -1173,6 +1191,10 @@ Changes to the grammar
|
|||||||
|
|
||||||
| array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET
|
| array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET
|
||||||
|
|
||||||
|
Remove the ATOMIC_UINT type_specifier_nonarray.
|
||||||
|
|
||||||
|
Remove all instances of the SUBROUTINE keyword.
|
||||||
|
|
||||||
Issues
|
Issues
|
||||||
|
|
||||||
1. Can we have specialization sizes in an array in a block? That prevents
|
1. Can we have specialization sizes in an array in a block? That prevents
|
||||||
@ -1286,6 +1308,7 @@ Revision History
|
|||||||
|
|
||||||
Rev. Date Author Changes
|
Rev. Date Author Changes
|
||||||
---- ----------- ------- --------------------------------------------
|
---- ----------- ------- --------------------------------------------
|
||||||
|
32 1-Aug-2016 JohnK Remove atomic_uint and more fully subroutine
|
||||||
31 20-Jul-2016 JohnK Have desktop versions respect mediump/lowp
|
31 20-Jul-2016 JohnK Have desktop versions respect mediump/lowp
|
||||||
30 12-Apr-2016 JohnK Restrict spec-const operations to non-float
|
30 12-Apr-2016 JohnK Restrict spec-const operations to non-float
|
||||||
29 5-Apr-2016 JohnK Clarify disallowance of spec-const arrays in
|
29 5-Apr-2016 JohnK Clarify disallowance of spec-const arrays in
|
||||||
|
@ -134,7 +134,7 @@ GENDEPENDS = api/timeMarker validity/timeMarker hostsynctable/timeMarker
|
|||||||
COMMONDOCS = $(CHAPTERS) $(GENINCLUDE) $(GENDEPENDS)
|
COMMONDOCS = $(CHAPTERS) $(GENINCLUDE) $(GENDEPENDS)
|
||||||
# A generated included file with the spec version, date, and git commit
|
# A generated included file with the spec version, date, and git commit
|
||||||
SPECVERSION = specversion.txt
|
SPECVERSION = specversion.txt
|
||||||
SPECREVISION = 1.0.22
|
SPECREVISION = 1.0.23
|
||||||
SPECREMARK =
|
SPECREMARK =
|
||||||
|
|
||||||
# Spec targets
|
# Spec targets
|
||||||
|
@ -8,6 +8,6 @@ ifdef::doctype-manpage[]
|
|||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
// Version of this file
|
// Version of this file
|
||||||
#define VK_HEADER_VERSION 22
|
#define VK_HEADER_VERSION 23
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
@ -225,3 +225,90 @@ handle. It may be passed to and returned from Vulkan commands only when
|
|||||||
include::../api/defines/VK_NULL_HANDLE.txt[]
|
include::../api/defines/VK_NULL_HANDLE.txt[]
|
||||||
|
|
||||||
// refEnd VK_NULL_HANDLE
|
// refEnd VK_NULL_HANDLE
|
||||||
|
|
||||||
|
|
||||||
|
[[boilerplate-platform-macros]]
|
||||||
|
== Platform-Specific Macro Definitions in +vk_platform.h+
|
||||||
|
|
||||||
|
In addition to the macros described for +vulkan.h+, platform-specific macros
|
||||||
|
specified and used in the included +vk_platform.h+ file are described in
|
||||||
|
this section. These macros are specifically used to control
|
||||||
|
platform-dependent behavior and their exact definitions are under the
|
||||||
|
control of specific platforms and Vulkan implementations.
|
||||||
|
|
||||||
|
|
||||||
|
=== Platform-Specific Calling Conventions
|
||||||
|
|
||||||
|
// @refBegin VKAPI_ATTR - Vulkan function attributes
|
||||||
|
|
||||||
|
dname:VKAPI_ATTR is a macro placed before the return type in Vulkan API
|
||||||
|
function declarations. If not empty, the interpretation of this macro
|
||||||
|
depends on the platform and compiler in use, but normally controls calling
|
||||||
|
conventions for C++11 and GCC/Clang-style compilers.
|
||||||
|
|
||||||
|
// @refEnd VKAPI_ATTR VKAPI_CALL VKAPI_PTR
|
||||||
|
|
||||||
|
// @refBegin VKAPI_CALL - Vulkan function calling conventions
|
||||||
|
|
||||||
|
dname:VKAPI_CALL is a macro placed after the return type in Vulkan API
|
||||||
|
function declarations. If not empty, the interpretation of this macro
|
||||||
|
depends on the platform and compiler in use, but normally controls calling
|
||||||
|
conventions for MSVC-style compilers.
|
||||||
|
|
||||||
|
// @refEnd VKAPI_CALL VKAPI_ATTR VKAPI_PTR
|
||||||
|
|
||||||
|
// @refBegin VKAPI_PTR - Vulkan function pointer calling conventions
|
||||||
|
|
||||||
|
dname:VKAPI_PTR is a macro placed between the '(' and '*' in Vulkan API
|
||||||
|
function pointer declarations. If not empty, the interpretation of this
|
||||||
|
macro depends on the platform and compiler in use, and normally controls
|
||||||
|
calling conventions. dname:VKAPI_PTR typically has the same definition as
|
||||||
|
dname:VKAPI_ATTR or dname:VKAPI_CALL, depending on the compiler.
|
||||||
|
|
||||||
|
// @refEnd VKAPI_PTR VKAPI_ATTR VKAPI_CALL
|
||||||
|
|
||||||
|
|
||||||
|
=== Platform-Specific Header Control
|
||||||
|
|
||||||
|
// @refBegin VK_NO_STDINT_H - control definition of +<stdint.h>+ types
|
||||||
|
|
||||||
|
If the +VK_NO_STDINT_H+ macro is defined at compile time, it indicates that
|
||||||
|
the system +<stdint.h>+ does not define some required integer types, and
|
||||||
|
+vk_platform.h+ will declare fallback definitions of those types. This is
|
||||||
|
included for backwards compatibility with very old compilers, such as
|
||||||
|
Microsoft Visual Studio version 2008 or before.
|
||||||
|
|
||||||
|
// @refEnd VK_NO_STDINT_H
|
||||||
|
|
||||||
|
|
||||||
|
=== Window System-Specific Header Control
|
||||||
|
|
||||||
|
// @refBegin WSIheaders - control inclusion of window system interface extensions
|
||||||
|
|
||||||
|
When using different window systems with Khronos extensions, header files
|
||||||
|
for those window systems must: be included at compile time in order for the
|
||||||
|
corresponding extension definitions to compile. The Vulkan header files
|
||||||
|
cannot determine whether or not an external header is available at compile
|
||||||
|
time, so applications must: include macros enabling those headers. If this is
|
||||||
|
not done, the corresponding extension interfaces will not be defined and
|
||||||
|
they will be unusable.
|
||||||
|
|
||||||
|
The extensions, required compile-time symbols to enable them, and window
|
||||||
|
systems they correspond to are defined in the
|
||||||
|
<<boilerplate-wsi-header-table,following table>>.
|
||||||
|
|
||||||
|
|
||||||
|
[[boilerplate-wsi-header-table]]
|
||||||
|
.Window System Extensions and Required Compile-Time Symbol Definitions
|
||||||
|
[options="header"]
|
||||||
|
|====
|
||||||
|
| Extension Name | Required Compile-Time Symbol | Window System Name
|
||||||
|
| +VK_KHR_xlib_surface+ | +VK_USE_PLATFORM_XLIB_KHR+ | X11 Xlib library
|
||||||
|
| +VK_KHR_xcb_surface+ | +VK_USE_PLATFORM_XCB_KHR+ | X11 Xcb library
|
||||||
|
| +VK_KHR_wayland_surface+ | +VK_USE_PLATFORM_WAYLAND_KHR+ | Wayland
|
||||||
|
| +VK_KHR_mir_surface+ | +VK_USE_PLATFORM_MIR_KHR+ | Mir
|
||||||
|
| +VK_KHR_android_surface+ | +VK_USE_PLATFORM_ANDROID_KHR+ | Android Native
|
||||||
|
| +VK_KHR_win32_surface+ | +VK_USE_PLATFORM_WIN32_KHR+ | Windows Win32
|
||||||
|
|====
|
||||||
|
|
||||||
|
// @refEnd WSIheaders
|
||||||
|
@ -22,5 +22,5 @@ specific Vulkan extensions and layers, but rather specifies the processes by
|
|||||||
which extensions and layers are created. As of version 1.0.21 of the Vulkan
|
which extensions and layers are created. As of version 1.0.21 of the Vulkan
|
||||||
Specification, this content has been migrated to the <<vulkan-styleguide,
|
Specification, this content has been migrated to the <<vulkan-styleguide,
|
||||||
Vulkan Documentation and Extensions>>
|
Vulkan Documentation and Extensions>>
|
||||||
document. Authors creating extensions and layers must follow the mandatory
|
document. Authors creating extensions and layers must: follow the mandatory
|
||||||
procedures in that document.
|
procedures in that document.
|
||||||
|
@ -471,7 +471,7 @@ Memory Dependency::
|
|||||||
A sequence of operations that makes writes available, performs an
|
A sequence of operations that makes writes available, performs an
|
||||||
execution dependency between the writes and subsequent accesses, and
|
execution dependency between the writes and subsequent accesses, and
|
||||||
makes available writes visible to later accesses. In order for the
|
makes available writes visible to later accesses. In order for the
|
||||||
effects of a write to be coherent with later accesses, it must be made
|
effects of a write to be coherent with later accesses, it must: be made
|
||||||
available from the old access type and then made visible to the new
|
available from the old access type and then made visible to the new
|
||||||
access type.
|
access type.
|
||||||
|
|
||||||
@ -484,7 +484,7 @@ Memory Type::
|
|||||||
|
|
||||||
Mip Tail Region::
|
Mip Tail Region::
|
||||||
The set of mipmap levels of a sparse residency texture that are too
|
The set of mipmap levels of a sparse residency texture that are too
|
||||||
small to fill a sparse block, and that must all be bound to memory
|
small to fill a sparse block, and that must: all be bound to memory
|
||||||
collectively and opaquely.
|
collectively and opaquely.
|
||||||
|
|
||||||
Non-Dispatchable Handle::
|
Non-Dispatchable Handle::
|
||||||
|
@ -92,7 +92,7 @@ A SPIR-V module passed to flink:vkCreateShaderModule must: conform to the
|
|||||||
following rules:
|
following rules:
|
||||||
|
|
||||||
* Every entry point must: have no return value and accept no arguments.
|
* Every entry point must: have no return value and accept no arguments.
|
||||||
* Recursion: The static function-call graph for an entry point must not contain cycles.
|
* Recursion: The static function-call graph for an entry point mustnot: contain cycles.
|
||||||
* The *Logical* addressing model must: be selected.
|
* The *Logical* addressing model must: be selected.
|
||||||
* *Scope* for execution must: be limited to:
|
* *Scope* for execution must: be limited to:
|
||||||
** *Workgroup*
|
** *Workgroup*
|
||||||
|
@ -100,7 +100,7 @@ include::../api/protos/vkCreateCommandPool.txt[]
|
|||||||
* pname:pCreateInfo contains information used to create the command pool.
|
* pname:pCreateInfo contains information used to create the command pool.
|
||||||
* pname:pAllocator controls host memory allocation as described in the
|
* pname:pAllocator controls host memory allocation as described in the
|
||||||
<<memory-allocation, Memory Allocation>> chapter.
|
<<memory-allocation, Memory Allocation>> chapter.
|
||||||
* pname:pCommandPool points to an sname:VkCommandPool handle in which the
|
* pname:pCommandPool points to a sname:VkCommandPool handle in which the
|
||||||
created pool is returned.
|
created pool is returned.
|
||||||
|
|
||||||
include::../validity/protos/vkCreateCommandPool.txt[]
|
include::../validity/protos/vkCreateCommandPool.txt[]
|
||||||
|
@ -282,7 +282,7 @@ include::../api/structs/VkBufferImageCopy.txt[]
|
|||||||
in buffer memory. If either of these values is zero, that aspect of the
|
in buffer memory. If either of these values is zero, that aspect of the
|
||||||
buffer memory is considered to be tightly packed according to the
|
buffer memory is considered to be tightly packed according to the
|
||||||
pname:imageExtent.
|
pname:imageExtent.
|
||||||
* pname:imageSubresource is an slink:VkImageSubresourceLayers used to
|
* pname:imageSubresource is a slink:VkImageSubresourceLayers used to
|
||||||
specify the specific image subresources of the image used for the source
|
specify the specific image subresources of the image used for the source
|
||||||
or destination image data.
|
or destination image data.
|
||||||
* pname:imageOffset selects the initial x, y, z offsets in texels of the
|
* pname:imageOffset selects the initial x, y, z offsets in texels of the
|
||||||
|
@ -598,7 +598,7 @@ include::../api/structs/VkDescriptorSetLayoutBinding.txt[]
|
|||||||
|
|
||||||
* pname:binding is the binding number of this entry and corresponds
|
* pname:binding is the binding number of this entry and corresponds
|
||||||
to a resource of the same binding number in the shader stages.
|
to a resource of the same binding number in the shader stages.
|
||||||
* pname:descriptorType is an elink:VkDescriptorType specifying which type
|
* pname:descriptorType is a elink:VkDescriptorType specifying which type
|
||||||
of resource descriptors are used for this binding.
|
of resource descriptors are used for this binding.
|
||||||
* pname:descriptorCount is the number of descriptors contained in the
|
* pname:descriptorCount is the number of descriptors contained in the
|
||||||
binding, accessed in a shader as an array. If pname:descriptorCount is
|
binding, accessed in a shader as an array. If pname:descriptorCount is
|
||||||
|
@ -24,6 +24,8 @@ include::../api/structs/VkPipelineInputAssemblyStateCreateInfo.txt[]
|
|||||||
* pname:sType is the type of this structure.
|
* pname:sType is the type of this structure.
|
||||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||||
* pname:flags is reserved for future use.
|
* pname:flags is reserved for future use.
|
||||||
|
* pname:topology is a elink:VkPrimitiveTopology defining the primitive
|
||||||
|
topology, as described below.
|
||||||
* pname:primitiveRestartEnable controls whether a special vertex index
|
* pname:primitiveRestartEnable controls whether a special vertex index
|
||||||
value is treated as restarting the assembly of primitives. This enable
|
value is treated as restarting the assembly of primitives. This enable
|
||||||
only applies to indexed draws (flink:vkCmdDrawIndexed and
|
only applies to indexed draws (flink:vkCmdDrawIndexed and
|
||||||
@ -32,8 +34,6 @@ include::../api/structs/VkPipelineInputAssemblyStateCreateInfo.txt[]
|
|||||||
fname:vkCmdBindIndexBuffer is equal to ename:VK_INDEX_TYPE_UINT32, or
|
fname:vkCmdBindIndexBuffer is equal to ename:VK_INDEX_TYPE_UINT32, or
|
||||||
0xFFFF when pname:indexType is equal to ename:VK_INDEX_TYPE_UINT16.
|
0xFFFF when pname:indexType is equal to ename:VK_INDEX_TYPE_UINT16.
|
||||||
Primitive restart is not allowed for ``list'' topologies.
|
Primitive restart is not allowed for ``list'' topologies.
|
||||||
* pname:topology is a elink:VkPrimitiveTopology defining the primitive
|
|
||||||
topology, as described below.
|
|
||||||
|
|
||||||
Restarting the assembly of primitives discards the most recent index values
|
Restarting the assembly of primitives discards the most recent index values
|
||||||
if those elements formed an incomplete primitive, and restarts the primitive
|
if those elements formed an incomplete primitive, and restarts the primitive
|
||||||
|
@ -14,7 +14,7 @@ or any of its child objects.
|
|||||||
Extensions can operate at either the instance or device scope. Enabled instance
|
Extensions can operate at either the instance or device scope. Enabled instance
|
||||||
extensions are able to affect the operation of the instance and any of its
|
extensions are able to affect the operation of the instance and any of its
|
||||||
child objects, while device extensions may: only be available on a subset of
|
child objects, while device extensions may: only be available on a subset of
|
||||||
physical devices, must be individually enabled per-device, and only affect the
|
physical devices, must: be individually enabled per-device, and only affect the
|
||||||
operation of the devices where they are enabled.
|
operation of the devices where they are enabled.
|
||||||
|
|
||||||
Examples of these might be:
|
Examples of these might be:
|
||||||
|
@ -89,21 +89,66 @@ The members of the sname:VkPhysicalDeviceFeatures structure describe the
|
|||||||
following features:
|
following features:
|
||||||
|
|
||||||
* [[features-features-robustBufferAccess]] pname:robustBufferAccess
|
* [[features-features-robustBufferAccess]] pname:robustBufferAccess
|
||||||
indicates that out of bounds accesses to buffers via shader operations
|
indicates that accesses to buffers are bounds-checked against the range of
|
||||||
are well-defined.
|
the buffer descriptor (as determined by
|
||||||
** When enabled, out-of-bounds buffer reads will return any of the
|
sname:VkDescriptorBufferInfo::pname:range,
|
||||||
following values:
|
sname:VkBufferViewCreateInfo::pname:range, or the size of the buffer). Out
|
||||||
*** Values from anywhere within the buffer object.
|
of bounds accesses mustnot: cause application termination, and the effects
|
||||||
|
of shader loads, stores, and atomics must: conform to an
|
||||||
|
implementation-dependent behavior as described below.
|
||||||
|
** A buffer access is considered to be out of bounds if any of the following
|
||||||
|
are true:
|
||||||
|
*** The pointer was formed by code:OpImageTexelPointer and the coordinate is
|
||||||
|
less than zero or greater than or equal to the number of whole elements
|
||||||
|
in the bound range.
|
||||||
|
*** The pointer was not formed by code:OpImageTexelPointer and the object
|
||||||
|
pointed to is not wholly contained within the bound range.
|
||||||
|
+
|
||||||
|
--
|
||||||
|
[NOTE]
|
||||||
|
.Note
|
||||||
|
====
|
||||||
|
If a SPIR-V code:OpLoad instruction loads a structure and the tail end of the
|
||||||
|
structure is out of bounds, then all members of the structure are considered
|
||||||
|
out of bounds even if the members at the end are not statically used.
|
||||||
|
====
|
||||||
|
--
|
||||||
|
+
|
||||||
|
*** If any buffer access in a given SPIR-V block is determined to be
|
||||||
|
out of bounds, then any other access of the same type (load, store, or
|
||||||
|
atomic) in the same SPIR-V block that accesses an address less
|
||||||
|
than 16 bytes away from the out of bounds address may: also be
|
||||||
|
considered out of bounds.
|
||||||
|
** Out-of-bounds buffer loads will return any of the following values:
|
||||||
|
*** Values from anywhere within the memory range(s) bound to the buffer
|
||||||
|
(possibly including bytes of memory past the end of the buffer, up to
|
||||||
|
the end of the bound range).
|
||||||
*** Zero values, or (0,0,0,x) vectors for vector reads where x is a valid
|
*** Zero values, or (0,0,0,x) vectors for vector reads where x is a valid
|
||||||
value represented in the type of the vector components and may: be any
|
value represented in the type of the vector components and may: be any
|
||||||
of:
|
of:
|
||||||
**** 0, 1, or the maximum representable positive integer value, for signed
|
**** 0, 1, or the maximum representable positive integer value, for signed
|
||||||
or unsigned integer components
|
or unsigned integer components
|
||||||
**** 0.0 or 1.0, for floating-point components
|
**** 0.0 or 1.0, for floating-point components
|
||||||
** When enabled, out-of-bounds writes may: modify values within the buffer
|
** Out-of-bounds writes may: modify values within the memory range(s) bound
|
||||||
object or be ignored.
|
to the buffer, but mustnot: modify any other memory.
|
||||||
** If not enabled, out of bounds accesses may: cause undefined behaviour
|
** Out-of-bounds atomics may: modify values within the memory range(s) bound
|
||||||
up-to and including process termination.
|
to the buffer, but mustnot: modify any other memory, and return an
|
||||||
|
undefined value.
|
||||||
|
** Vertex input attributes are considered out of bounds if the address of the
|
||||||
|
attribute plus the size of the attribute is greater than the size of the
|
||||||
|
bound buffer. Further, if any vertex input attribute using a specific
|
||||||
|
vertex input binding is out of bounds, then all vertex input attributes
|
||||||
|
using that vertex input binding for that vertex shader invocation are
|
||||||
|
considered out of bounds.
|
||||||
|
*** If a vertex input attribute is out of bounds, it will be assigned one
|
||||||
|
of the following values:
|
||||||
|
**** Values from anywhere within the memory range(s) bound to the buffer,
|
||||||
|
converted according to the format of the attribute.
|
||||||
|
**** Zero values, format converted according to the format of the attribute.
|
||||||
|
**** Zero values, or (0,0,0,x) vectors, as described above.
|
||||||
|
** If pname:robustBufferAccess is not enabled, out of bounds accesses may:
|
||||||
|
corrupt any memory within the process and cause undefined behaviour up
|
||||||
|
to and including application termination.
|
||||||
* [[features-features-fullDrawIndexUint32]] pname:fullDrawIndexUint32
|
* [[features-features-fullDrawIndexUint32]] pname:fullDrawIndexUint32
|
||||||
indicates the full 32-bit range of indices is supported for indexed draw
|
indicates the full 32-bit range of indices is supported for indexed draw
|
||||||
calls when using a elink:VkIndexType of ename:VK_INDEX_TYPE_UINT32.
|
calls when using a elink:VkIndexType of ename:VK_INDEX_TYPE_UINT32.
|
||||||
|
@ -19,7 +19,7 @@ command:
|
|||||||
include::../api/protos/vkGetInstanceProcAddr.txt[]
|
include::../api/protos/vkGetInstanceProcAddr.txt[]
|
||||||
|
|
||||||
* pname:instance is the instance that the function pointer will be
|
* pname:instance is the instance that the function pointer will be
|
||||||
compatible with.
|
compatible with, or `NULL` for commands not dependent on any instance.
|
||||||
* pname:pName is the name of the command to obtain.
|
* pname:pName is the name of the command to obtain.
|
||||||
|
|
||||||
fname:vkGetInstanceProcAddr itself is obtained in a platform- and loader-
|
fname:vkGetInstanceProcAddr itself is obtained in a platform- and loader-
|
||||||
@ -30,25 +30,36 @@ Loaders are encouraged to export function symbols for all other core
|
|||||||
Vulkan commands as well; if this is done, then applications that use only
|
Vulkan commands as well; if this is done, then applications that use only
|
||||||
the core Vulkan commands have no need to use fname:vkGetInstanceProcAddr.
|
the core Vulkan commands have no need to use fname:vkGetInstanceProcAddr.
|
||||||
|
|
||||||
Function pointers to commands that do not operate on a specific instance can:
|
The table below defines the various use cases for fname:vkGetInstanceProcAddr
|
||||||
be obtained by using this command with pname:instance equal to `NULL`. The
|
and expected return value ("fp" is function pointer) for each case.
|
||||||
following commands can: be accessed this way:
|
|
||||||
|
|
||||||
* flink:vkEnumerateInstanceExtensionProperties
|
|
||||||
* flink:vkEnumerateInstanceLayerProperties
|
|
||||||
* flink:vkCreateInstance
|
|
||||||
|
|
||||||
The returned function pointer is of type tlink:PFN_vkVoidFunction, and must
|
The returned function pointer is of type tlink:PFN_vkVoidFunction, and must
|
||||||
be cast to the type of the command being queried.
|
be cast to the type of the command being queried.
|
||||||
|
|
||||||
If pname:instance is a valid sname:VkInstance, function pointers to any
|
.vkGetInstanceProcAddr behavior
|
||||||
commands that operate on pname:instance or a child of pname:instance can: be
|
[width="80%",options="header",align="center"]
|
||||||
obtained. The returned function pointer must: only be called with a
|
|=====
|
||||||
dispatchable object (the first parameter) that is a child of pname:instance.
|
| pname:instance | pname:pName | return value
|
||||||
|
| * | NULL | undefined
|
||||||
|
| invalid instance | * | undefined
|
||||||
|
| NULL | flink:vkEnumerateInstanceExtensionProperties | fp
|
||||||
|
| NULL | flink:vkEnumerateInstanceLayerProperties | fp
|
||||||
|
| NULL | flink:vkCreateInstance | fp
|
||||||
|
| NULL | * (any pname:pName not covered above) | NULL
|
||||||
|
| instance | core Vulkan command | fp^1^
|
||||||
|
| instance | enabled instance extension commands for pname:instance | fp^1^
|
||||||
|
| instance | available device extension commands for pname:instance | fp^1,2^
|
||||||
|
| instance | * (any pname:pName not covered above) | NULL
|
||||||
|
|=====
|
||||||
|
|
||||||
If pname:pName is not the name of a core Vulkan command, or is an
|
1::
|
||||||
extension command for any extension not supported by any available layer or
|
The returned function pointer must: only be called with a dispatchable object
|
||||||
implementation, then fname:vkGetInstanceProcAddr will return `NULL`.
|
(the first parameter) that is a child of pname:instance.
|
||||||
|
e.g. sname:VkInstance, sname:VkPhysicalDevice, sname:VkDevice, sname:VkQueue, or
|
||||||
|
sname:VkCommandBuffer.
|
||||||
|
|
||||||
|
2::
|
||||||
|
available extension is an extension function supported by any of the loader, ICD or layer.
|
||||||
|
|
||||||
ifdef::editing-notes[]
|
ifdef::editing-notes[]
|
||||||
[NOTE]
|
[NOTE]
|
||||||
@ -87,29 +98,36 @@ command:
|
|||||||
|
|
||||||
include::../api/protos/vkGetDeviceProcAddr.txt[]
|
include::../api/protos/vkGetDeviceProcAddr.txt[]
|
||||||
|
|
||||||
* pname:device is the logical device that provides the function pointer.
|
The table below defines the various use cases for fname:vkGetDeviceProcAddr
|
||||||
* pname:pName is the name of any Vulkan command whose first parameter
|
and expected return value for each case.
|
||||||
is one of
|
|
||||||
** sname:VkDevice
|
|
||||||
** sname:VkQueue
|
|
||||||
** sname:VkCommandBuffer
|
|
||||||
|
|
||||||
The returned function pointer is of type tlink:PFN_vkVoidFunction, and must
|
The returned function pointer is of type tlink:PFN_vkVoidFunction, and must
|
||||||
be cast to the type of the command being queried.
|
be cast to the type of the command being queried.
|
||||||
|
|
||||||
If pname:pName is not the name of one of these Vulkan commands, and is
|
.vkGetDeviceProcAddr behavior
|
||||||
not the name of an extension command belonging to an extension enabled for
|
[width="80%",options="header",align="center"]
|
||||||
pname:device, then fname:vkGetDeviceProcAddr will return `NULL`.
|
|=====
|
||||||
|
| pname:device | pname:pName | return value
|
||||||
|
| NULL | * | undefined
|
||||||
|
| invalid device | * | undefined
|
||||||
|
| device | NULL | undefined
|
||||||
|
| device | core Vulkan command^1^ | fp
|
||||||
|
| device | enabled device extension commands for pname:device | fp
|
||||||
|
| device | * (any pname:pName not covered above) | NULL
|
||||||
|
|=====
|
||||||
|
|
||||||
|
1::
|
||||||
|
pname:pName is the name of any Vulkan command whose first parameter
|
||||||
|
is sname:VkDevice or any of its dispatchable children (e.g. sname:VkQueue,
|
||||||
|
sname:vkCommandBuffer).
|
||||||
|
|
||||||
include::../validity/protos/vkGetDeviceProcAddr.txt[]
|
include::../validity/protos/vkGetDeviceProcAddr.txt[]
|
||||||
|
|
||||||
// refEnd vkGetInstanceProcAddr PFN_vkVoidFunction
|
// refEnd vkGetDeviceProcAddr PFN_vkVoidFunction
|
||||||
|
|
||||||
// refBegin PFN_vkVoidFunction Dummy function pointer type returned by queries
|
// refBegin PFN_vkVoidFunction Dummy function pointer type returned by queries
|
||||||
|
|
||||||
The function pointer type returned from the flink:vkGetInstanceProcAddr and
|
The definition of tlink:PFN_vkVoidFunction is:
|
||||||
flink:vkGetDeviceProcAddr is a dummy type not corresponding to any actual
|
|
||||||
Vulkan function:
|
|
||||||
|
|
||||||
include::../api/funcpointers/PFN_vkVoidFunction.txt[]
|
include::../api/funcpointers/PFN_vkVoidFunction.txt[]
|
||||||
|
|
||||||
|
@ -145,6 +145,13 @@ The sname:VkAttachmentDescription structure is defined as:
|
|||||||
|
|
||||||
include::../api/structs/VkAttachmentDescription.txt[]
|
include::../api/structs/VkAttachmentDescription.txt[]
|
||||||
|
|
||||||
|
* pname:flags is a bitmask describing additional properties of the
|
||||||
|
attachment. Bits which can: be set include:
|
||||||
|
+
|
||||||
|
--
|
||||||
|
// refBegin VkAttachmentDescriptionFlagBits - Bitmask specifying additional properties of an attachment
|
||||||
|
include::../api/enums/VkAttachmentDescriptionFlagBits.txt[]
|
||||||
|
--
|
||||||
* pname:format is a elink:VkFormat value specifying the format of the
|
* pname:format is a elink:VkFormat value specifying the format of the
|
||||||
image that will be used for the attachment.
|
image that will be used for the attachment.
|
||||||
* pname:samples is the number of samples of the image as defined
|
* pname:samples is the number of samples of the image as defined
|
||||||
@ -196,13 +203,6 @@ include::../api/enums/VkAttachmentStoreOp.txt[]
|
|||||||
transitioned to when a render pass instance ends. During a render pass
|
transitioned to when a render pass instance ends. During a render pass
|
||||||
instance, an attachment can: use a different layout in each subpass, if
|
instance, an attachment can: use a different layout in each subpass, if
|
||||||
desired.
|
desired.
|
||||||
* pname:flags is a bitmask describing additional properties of the
|
|
||||||
attachment. Bits which can: be set include:
|
|
||||||
+
|
|
||||||
--
|
|
||||||
// refBegin VkAttachmentDescriptionFlagBits - Bitmask specifying additional properties of an attachment
|
|
||||||
include::../api/enums/VkAttachmentDescriptionFlagBits.txt[]
|
|
||||||
--
|
|
||||||
|
|
||||||
If the attachment uses a color format, then pname:loadOp and pname:storeOp
|
If the attachment uses a color format, then pname:loadOp and pname:storeOp
|
||||||
are used, and pname:stencilLoadOp and pname:stencilStoreOp are ignored. If
|
are used, and pname:stencilLoadOp and pname:stencilStoreOp are ignored. If
|
||||||
|
@ -744,7 +744,8 @@ include::../api/structs/VkImageViewCreateInfo.txt[]
|
|||||||
* pname:components specifies a remapping of color components (or of depth
|
* pname:components specifies a remapping of color components (or of depth
|
||||||
or stencil components after they have been converted into color
|
or stencil components after they have been converted into color
|
||||||
components). See slink:VkComponentMapping.
|
components). See slink:VkComponentMapping.
|
||||||
* pname:subresourceRange selects the set of mipmap levels and array layers
|
* pname:subresourceRange is a slink:VkImageSubresourceRange
|
||||||
|
selecting the set of mipmap levels and array layers
|
||||||
to be accessible to the view.
|
to be accessible to the view.
|
||||||
|
|
||||||
If pname:image was created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
|
If pname:image was created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
|
||||||
@ -759,101 +760,101 @@ Classes>> section.
|
|||||||
|========================================
|
|========================================
|
||||||
| Dim, Arrayed, MS | Image parameters | View parameters
|
| Dim, Arrayed, MS | Image parameters | View parameters
|
||||||
| 1D, 0, 0 |
|
| 1D, 0, 0 |
|
||||||
imageType = IMAGE_TYPE_1D +
|
imageType = ename:VK_IMAGE_TYPE_1D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height = 1 +
|
height = 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_1D +
|
viewType = ename:VK_VIEW_TYPE_1D +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 1
|
layerCount = 1
|
||||||
| 1D, 1, 0 |
|
| 1D, 1, 0 |
|
||||||
imageType = IMAGE_TYPE_1D +
|
imageType = ename:VK_IMAGE_TYPE_1D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height = 1 +
|
height = 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_1D_ARRAY +
|
viewType = ename:VK_VIEW_TYPE_1D_ARRAY +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers >= 1
|
layerCount >= 1
|
||||||
| 2D, 0, 0 |
|
| 2D, 0, 0 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_2D +
|
viewType = ename:VK_VIEW_TYPE_2D +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 1
|
layerCount = 1
|
||||||
| 2D, 1, 0 |
|
| 2D, 1, 0 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_2D_ARRAY +
|
viewType = ename:VK_VIEW_TYPE_2D_ARRAY +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers >= 1
|
layerCount >= 1
|
||||||
| 2D, 0, 1 |
|
| 2D, 0, 1 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples > 1 |
|
samples > 1 |
|
||||||
viewType = VIEW_TYPE_2D +
|
viewType = ename:VK_VIEW_TYPE_2D +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 1
|
layerCount = 1
|
||||||
| 2D, 1, 1 |
|
| 2D, 1, 1 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples > 1 |
|
samples > 1 |
|
||||||
viewType = VIEW_TYPE_2D_ARRAY +
|
viewType = ename:VK_VIEW_TYPE_2D_ARRAY +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers >= 1
|
layerCount >= 1
|
||||||
| CUBE, 0, 0 |
|
| CUBE, 0, 0 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height = width +
|
height = width +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 6 +
|
arrayLayers >= 6 +
|
||||||
samples = 1 +
|
samples = 1 +
|
||||||
flags include ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT |
|
flags include ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT |
|
||||||
viewType = VIEW_TYPE_CUBE +
|
viewType = ename:VK_VIEW_TYPE_CUBE +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 6
|
layerCount = 6
|
||||||
| CUBE, 1, 0 |
|
| CUBE, 1, 0 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height = width +
|
height = width +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 6×N +
|
N >= 1 +
|
||||||
|
arrayLayers >= latexmath:[$6 \times N$] +
|
||||||
samples = 1 +
|
samples = 1 +
|
||||||
flags include ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT |
|
flags include ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT |
|
||||||
viewType = VIEW_TYPE_CUBE_ARRAY +
|
viewType = ename:VK_VIEW_TYPE_CUBE_ARRAY +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 6×N
|
N >= 1 +
|
||||||
|
layerCount = latexmath:[$6 \times N$]
|
||||||
| 3D, 0, 0 |
|
| 3D, 0, 0 |
|
||||||
imageType = IMAGE_TYPE_3D +
|
imageType = ename:VK_IMAGE_TYPE_3D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth >= 1 +
|
depth >= 1 +
|
||||||
arrayLayers = 1 +
|
arrayLayers = 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_3D +
|
viewType = ename:VK_VIEW_TYPE_3D +
|
||||||
baseArrayLayer = 0 +
|
baseArrayLayer = 0 +
|
||||||
arrayLayers = 1
|
layerCount = 1
|
||||||
|========================================
|
|========================================
|
||||||
|
|
||||||
The pname:subresourceRange member is of type slink:VkImageSubresourceRange.
|
|
||||||
|
|
||||||
include::../validity/structs/VkImageViewCreateInfo.txt[]
|
include::../validity/structs/VkImageViewCreateInfo.txt[]
|
||||||
|
|
||||||
// refBegin VkImageSubresourceRange - Structure specifying a image subresource range
|
// refBegin VkImageSubresourceRange - Structure specifying a image subresource range
|
||||||
@ -1285,9 +1286,10 @@ multiple resources simultaneously, via flink:vkBindImageMemory,
|
|||||||
flink:vkBindBufferMemory, or via <<sparsememory-resource-binding,sparse
|
flink:vkBindBufferMemory, or via <<sparsememory-resource-binding,sparse
|
||||||
memory bindings>>. A memory range aliased between two images or two buffers
|
memory bindings>>. A memory range aliased between two images or two buffers
|
||||||
is defined to be the intersection of the memory ranges bound to the two
|
is defined to be the intersection of the memory ranges bound to the two
|
||||||
resources. A memory range aliased between an image and a buffer is defined
|
resources. A memory range aliased between two resources where one is a
|
||||||
|
buffer or a linear image, and the other is an optimal image, is defined
|
||||||
to be the intersection of the memory ranges bound to the two resources,
|
to be the intersection of the memory ranges bound to the two resources,
|
||||||
where each range is first bloated to be aligned to the
|
where each range is first padded to be aligned to the
|
||||||
pname:bufferImageGranularity. Applications can: alias memory, but use of
|
pname:bufferImageGranularity. Applications can: alias memory, but use of
|
||||||
multiple aliases is subject to several constraints.
|
multiple aliases is subject to several constraints.
|
||||||
|
|
||||||
|
@ -334,7 +334,7 @@ operation. For example, a sname:VkImageMemoryBarrier could use:
|
|||||||
* pname:oldLayout = etext:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
|
* pname:oldLayout = etext:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
|
||||||
* pname:newLayout = ename:VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
|
* pname:newLayout = ename:VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
|
||||||
|
|
||||||
Alternativeely, pname:oldLayout can: be ename:VK_IMAGE_LAYOUT_UNDEFINED, if
|
Alternatively, pname:oldLayout can: be ename:VK_IMAGE_LAYOUT_UNDEFINED, if
|
||||||
the image's contents need not be preserved.
|
the image's contents need not be preserved.
|
||||||
|
|
||||||
This barrier accomplishes a dependency chain between previous presentation
|
This barrier accomplishes a dependency chain between previous presentation
|
||||||
|
@ -89,6 +89,33 @@ def seeAlsoList(apiName, explicitRefs = None):
|
|||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
# Remap include directives in a list of lines so they can be extracted to a
|
||||||
|
# different directory. Returns remapped lines.
|
||||||
|
#
|
||||||
|
# lines - text to remap
|
||||||
|
# baseDir - target directory
|
||||||
|
# specDir - source directory
|
||||||
|
def remapIncludes(lines, baseDir, specDir):
|
||||||
|
# This should be compiled only once
|
||||||
|
includePat = re.compile('^include::(?P<path>.*)\[\]')
|
||||||
|
|
||||||
|
newLines = []
|
||||||
|
for line in lines:
|
||||||
|
matches = includePat.search(line)
|
||||||
|
if (matches != None):
|
||||||
|
path = matches.group('path')
|
||||||
|
|
||||||
|
# Relative path to include file from here
|
||||||
|
incPath = specDir + '/' + path
|
||||||
|
# Remap to be relative to baseDir
|
||||||
|
newPath = os.path.relpath(incPath, baseDir)
|
||||||
|
newLine = 'include::' + newPath + '[]\n'
|
||||||
|
logDiag('remapIncludes: remapping from:\n\t', line, 'to:\n\t', newLine)
|
||||||
|
newLines.append(newLine)
|
||||||
|
else:
|
||||||
|
newLines.append(line)
|
||||||
|
return newLines
|
||||||
|
|
||||||
# Generate header of a reference page
|
# Generate header of a reference page
|
||||||
# pageName - string name of the page
|
# pageName - string name of the page
|
||||||
# pageDesc - string short description of the page
|
# pageDesc - string short description of the page
|
||||||
@ -180,11 +207,12 @@ def refPageTail(pageName, seeAlso, fp, auto = False):
|
|||||||
|
|
||||||
printCopyrightBlock(fp, comment=False)
|
printCopyrightBlock(fp, comment=False)
|
||||||
|
|
||||||
# Emit a single reference page in baseDir
|
# Extract a single reference page into baseDir
|
||||||
# baseDir - base directory to emit page into
|
# baseDir - base directory to emit page into
|
||||||
|
# specDir - directory extracted page source came from
|
||||||
# pi - pageInfo for this page relative to file
|
# pi - pageInfo for this page relative to file
|
||||||
# file - list of strings making up the file, indexed by pi
|
# file - list of strings making up the file, indexed by pi
|
||||||
def emitPage(baseDir, pi, file):
|
def emitPage(baseDir, specDir, pi, file):
|
||||||
pageName = baseDir + '/' + pi.name + '.txt'
|
pageName = baseDir + '/' + pi.name + '.txt'
|
||||||
fp = open(pageName, 'w')
|
fp = open(pageName, 'w')
|
||||||
|
|
||||||
@ -198,7 +226,8 @@ def emitPage(baseDir, pi, file):
|
|||||||
pi.desc = '(no short description available)'
|
pi.desc = '(no short description available)'
|
||||||
|
|
||||||
# Specification text
|
# Specification text
|
||||||
specText = ''.join(file[pi.begin:pi.include+1])
|
lines = remapIncludes(file[pi.begin:pi.include+1], baseDir, specDir)
|
||||||
|
specText = ''.join(lines)
|
||||||
|
|
||||||
# Member/parameter list, if there is one
|
# Member/parameter list, if there is one
|
||||||
field = None
|
field = None
|
||||||
@ -211,10 +240,12 @@ def emitPage(baseDir, pi, file):
|
|||||||
else:
|
else:
|
||||||
logWarn('PyOutputGenerator::emitPage: unknown field type:', pi.type,
|
logWarn('PyOutputGenerator::emitPage: unknown field type:', pi.type,
|
||||||
'for', pi.name)
|
'for', pi.name)
|
||||||
fieldText = ''.join(file[pi.param:pi.body])
|
lines = remapIncludes(file[pi.param:pi.body], baseDir, specDir)
|
||||||
|
fieldText = ''.join(lines)
|
||||||
|
|
||||||
# Description text
|
# Description text
|
||||||
descText = ''.join(file[pi.body:pi.end+1])
|
lines = remapIncludes(file[pi.body:pi.end+1], baseDir, specDir)
|
||||||
|
descText = ''.join(lines)
|
||||||
|
|
||||||
refPageHead(pi.name,
|
refPageHead(pi.name,
|
||||||
pi.desc,
|
pi.desc,
|
||||||
@ -350,6 +381,10 @@ def genRef(specFile, baseDir):
|
|||||||
file = loadFile(specFile)
|
file = loadFile(specFile)
|
||||||
if (file == None):
|
if (file == None):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Save the path to this file for later use in rewriting relative includes
|
||||||
|
specDir = os.path.dirname(os.path.abspath(specFile))
|
||||||
|
|
||||||
pageMap = findRefs(file)
|
pageMap = findRefs(file)
|
||||||
logDiag(specFile + ': found', len(pageMap.keys()), 'potential pages')
|
logDiag(specFile + ': found', len(pageMap.keys()), 'potential pages')
|
||||||
|
|
||||||
@ -369,7 +404,7 @@ def genRef(specFile, baseDir):
|
|||||||
logDiag('genRef:', pi.name + ':', pi.Warning)
|
logDiag('genRef:', pi.name + ':', pi.Warning)
|
||||||
|
|
||||||
if (pi.extractPage):
|
if (pi.extractPage):
|
||||||
emitPage(baseDir, pi, file)
|
emitPage(baseDir, specDir, pi, file)
|
||||||
elif (pi.type == 'enums'):
|
elif (pi.type == 'enums'):
|
||||||
autoGenEnumsPage(baseDir, pi, file)
|
autoGenEnumsPage(baseDir, pi, file)
|
||||||
elif (pi.type == 'flags'):
|
elif (pi.type == 'flags'):
|
||||||
|
@ -14,9 +14,7 @@ C Specification
|
|||||||
|
|
||||||
// refBegin PFN_vkVoidFunction Dummy function pointer type returned by queries
|
// refBegin PFN_vkVoidFunction Dummy function pointer type returned by queries
|
||||||
|
|
||||||
The function pointer type returned from the flink:vkGetInstanceProcAddr and
|
The definition of tlink:PFN_vkVoidFunction is:
|
||||||
flink:vkGetDeviceProcAddr is a dummy type not corresponding to any actual
|
|
||||||
Vulkan function:
|
|
||||||
|
|
||||||
include::../api/funcpointers/PFN_vkVoidFunction.txt[]
|
include::../api/funcpointers/PFN_vkVoidFunction.txt[]
|
||||||
|
|
||||||
|
@ -22,6 +22,13 @@ include::../api/structs/VkAttachmentDescription.txt[]
|
|||||||
Members
|
Members
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
* pname:flags is a bitmask describing additional properties of the
|
||||||
|
attachment. Bits which can: be set include:
|
||||||
|
+
|
||||||
|
--
|
||||||
|
// refBegin VkAttachmentDescriptionFlagBits - Bitmask specifying additional properties of an attachment
|
||||||
|
include::../api/enums/VkAttachmentDescriptionFlagBits.txt[]
|
||||||
|
--
|
||||||
* pname:format is a elink:VkFormat value specifying the format of the
|
* pname:format is a elink:VkFormat value specifying the format of the
|
||||||
image that will be used for the attachment.
|
image that will be used for the attachment.
|
||||||
* pname:samples is the number of samples of the image as defined
|
* pname:samples is the number of samples of the image as defined
|
||||||
@ -73,13 +80,6 @@ include::../api/enums/VkAttachmentStoreOp.txt[]
|
|||||||
transitioned to when a render pass instance ends. During a render pass
|
transitioned to when a render pass instance ends. During a render pass
|
||||||
instance, an attachment can: use a different layout in each subpass, if
|
instance, an attachment can: use a different layout in each subpass, if
|
||||||
desired.
|
desired.
|
||||||
* pname:flags is a bitmask describing additional properties of the
|
|
||||||
attachment. Bits which can: be set include:
|
|
||||||
+
|
|
||||||
--
|
|
||||||
// refBegin VkAttachmentDescriptionFlagBits - Bitmask specifying additional properties of an attachment
|
|
||||||
include::../api/enums/VkAttachmentDescriptionFlagBits.txt[]
|
|
||||||
--
|
|
||||||
|
|
||||||
|
|
||||||
Description
|
Description
|
||||||
|
@ -31,7 +31,7 @@ Members
|
|||||||
in buffer memory. If either of these values is zero, that aspect of the
|
in buffer memory. If either of these values is zero, that aspect of the
|
||||||
buffer memory is considered to be tightly packed according to the
|
buffer memory is considered to be tightly packed according to the
|
||||||
pname:imageExtent.
|
pname:imageExtent.
|
||||||
* pname:imageSubresource is an slink:VkImageSubresourceLayers used to
|
* pname:imageSubresource is a slink:VkImageSubresourceLayers used to
|
||||||
specify the specific image subresources of the image used for the source
|
specify the specific image subresources of the image used for the source
|
||||||
or destination image data.
|
or destination image data.
|
||||||
* pname:imageOffset selects the initial x, y, z offsets in texels of the
|
* pname:imageOffset selects the initial x, y, z offsets in texels of the
|
||||||
|
@ -24,7 +24,7 @@ Members
|
|||||||
|
|
||||||
* pname:binding is the binding number of this entry and corresponds
|
* pname:binding is the binding number of this entry and corresponds
|
||||||
to a resource of the same binding number in the shader stages.
|
to a resource of the same binding number in the shader stages.
|
||||||
* pname:descriptorType is an elink:VkDescriptorType specifying which type
|
* pname:descriptorType is a elink:VkDescriptorType specifying which type
|
||||||
of resource descriptors are used for this binding.
|
of resource descriptors are used for this binding.
|
||||||
* pname:descriptorCount is the number of descriptors contained in the
|
* pname:descriptorCount is the number of descriptors contained in the
|
||||||
binding, accessed in a shader as an array. If pname:descriptorCount is
|
binding, accessed in a shader as an array. If pname:descriptorCount is
|
||||||
|
@ -32,7 +32,8 @@ Members
|
|||||||
* pname:components specifies a remapping of color components (or of depth
|
* pname:components specifies a remapping of color components (or of depth
|
||||||
or stencil components after they have been converted into color
|
or stencil components after they have been converted into color
|
||||||
components). See slink:VkComponentMapping.
|
components). See slink:VkComponentMapping.
|
||||||
* pname:subresourceRange selects the set of mipmap levels and array layers
|
* pname:subresourceRange is a slink:VkImageSubresourceRange
|
||||||
|
selecting the set of mipmap levels and array layers
|
||||||
to be accessible to the view.
|
to be accessible to the view.
|
||||||
|
|
||||||
|
|
||||||
@ -51,101 +52,101 @@ Classes>> section.
|
|||||||
|========================================
|
|========================================
|
||||||
| Dim, Arrayed, MS | Image parameters | View parameters
|
| Dim, Arrayed, MS | Image parameters | View parameters
|
||||||
| 1D, 0, 0 |
|
| 1D, 0, 0 |
|
||||||
imageType = IMAGE_TYPE_1D +
|
imageType = ename:VK_IMAGE_TYPE_1D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height = 1 +
|
height = 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_1D +
|
viewType = ename:VK_VIEW_TYPE_1D +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 1
|
layerCount = 1
|
||||||
| 1D, 1, 0 |
|
| 1D, 1, 0 |
|
||||||
imageType = IMAGE_TYPE_1D +
|
imageType = ename:VK_IMAGE_TYPE_1D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height = 1 +
|
height = 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_1D_ARRAY +
|
viewType = ename:VK_VIEW_TYPE_1D_ARRAY +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers >= 1
|
layerCount >= 1
|
||||||
| 2D, 0, 0 |
|
| 2D, 0, 0 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_2D +
|
viewType = ename:VK_VIEW_TYPE_2D +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 1
|
layerCount = 1
|
||||||
| 2D, 1, 0 |
|
| 2D, 1, 0 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_2D_ARRAY +
|
viewType = ename:VK_VIEW_TYPE_2D_ARRAY +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers >= 1
|
layerCount >= 1
|
||||||
| 2D, 0, 1 |
|
| 2D, 0, 1 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples > 1 |
|
samples > 1 |
|
||||||
viewType = VIEW_TYPE_2D +
|
viewType = ename:VK_VIEW_TYPE_2D +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 1
|
layerCount = 1
|
||||||
| 2D, 1, 1 |
|
| 2D, 1, 1 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 1 +
|
arrayLayers >= 1 +
|
||||||
samples > 1 |
|
samples > 1 |
|
||||||
viewType = VIEW_TYPE_2D_ARRAY +
|
viewType = ename:VK_VIEW_TYPE_2D_ARRAY +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers >= 1
|
layerCount >= 1
|
||||||
| CUBE, 0, 0 |
|
| CUBE, 0, 0 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height = width +
|
height = width +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 6 +
|
arrayLayers >= 6 +
|
||||||
samples = 1 +
|
samples = 1 +
|
||||||
flags include ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT |
|
flags include ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT |
|
||||||
viewType = VIEW_TYPE_CUBE +
|
viewType = ename:VK_VIEW_TYPE_CUBE +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 6
|
layerCount = 6
|
||||||
| CUBE, 1, 0 |
|
| CUBE, 1, 0 |
|
||||||
imageType = IMAGE_TYPE_2D +
|
imageType = ename:VK_IMAGE_TYPE_2D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height = width +
|
height = width +
|
||||||
depth = 1 +
|
depth = 1 +
|
||||||
arrayLayers >= 6×N +
|
N >= 1 +
|
||||||
|
arrayLayers >= latexmath:[$6 \times N$] +
|
||||||
samples = 1 +
|
samples = 1 +
|
||||||
flags include ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT |
|
flags include ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT |
|
||||||
viewType = VIEW_TYPE_CUBE_ARRAY +
|
viewType = ename:VK_VIEW_TYPE_CUBE_ARRAY +
|
||||||
baseArrayLayer >= 0 +
|
baseArrayLayer >= 0 +
|
||||||
arrayLayers = 6×N
|
N >= 1 +
|
||||||
|
layerCount = latexmath:[$6 \times N$]
|
||||||
| 3D, 0, 0 |
|
| 3D, 0, 0 |
|
||||||
imageType = IMAGE_TYPE_3D +
|
imageType = ename:VK_IMAGE_TYPE_3D +
|
||||||
width >= 1 +
|
width >= 1 +
|
||||||
height >= 1 +
|
height >= 1 +
|
||||||
depth >= 1 +
|
depth >= 1 +
|
||||||
arrayLayers = 1 +
|
arrayLayers = 1 +
|
||||||
samples = 1 |
|
samples = 1 |
|
||||||
viewType = VIEW_TYPE_3D +
|
viewType = ename:VK_VIEW_TYPE_3D +
|
||||||
baseArrayLayer = 0 +
|
baseArrayLayer = 0 +
|
||||||
arrayLayers = 1
|
layerCount = 1
|
||||||
|========================================
|
|========================================
|
||||||
|
|
||||||
The pname:subresourceRange member is of type slink:VkImageSubresourceRange.
|
|
||||||
|
|
||||||
include::../validity/structs/VkImageViewCreateInfo.txt[]
|
include::../validity/structs/VkImageViewCreateInfo.txt[]
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,21 +30,66 @@ Description
|
|||||||
-----------
|
-----------
|
||||||
|
|
||||||
* [[features-features-robustBufferAccess]] pname:robustBufferAccess
|
* [[features-features-robustBufferAccess]] pname:robustBufferAccess
|
||||||
indicates that out of bounds accesses to buffers via shader operations
|
indicates that accesses to buffers are bounds-checked against the range of
|
||||||
are well-defined.
|
the buffer descriptor (as determined by
|
||||||
** When enabled, out-of-bounds buffer reads will return any of the
|
sname:VkDescriptorBufferInfo::pname:range,
|
||||||
following values:
|
sname:VkBufferViewCreateInfo::pname:range, or the size of the buffer). Out
|
||||||
*** Values from anywhere within the buffer object.
|
of bounds accesses mustnot: cause application termination, and the effects
|
||||||
|
of shader loads, stores, and atomics must: conform to an
|
||||||
|
implementation-dependent behavior as described below.
|
||||||
|
** A buffer access is considered to be out of bounds if any of the following
|
||||||
|
are true:
|
||||||
|
*** The pointer was formed by code:OpImageTexelPointer and the coordinate is
|
||||||
|
less than zero or greater than or equal to the number of whole elements
|
||||||
|
in the bound range.
|
||||||
|
*** The pointer was not formed by code:OpImageTexelPointer and the object
|
||||||
|
pointed to is not wholly contained within the bound range.
|
||||||
|
+
|
||||||
|
--
|
||||||
|
[NOTE]
|
||||||
|
.Note
|
||||||
|
====
|
||||||
|
If a SPIR-V code:OpLoad instruction loads a structure and the tail end of the
|
||||||
|
structure is out of bounds, then all members of the structure are considered
|
||||||
|
out of bounds even if the members at the end are not statically used.
|
||||||
|
====
|
||||||
|
--
|
||||||
|
+
|
||||||
|
*** If any buffer access in a given SPIR-V block is determined to be
|
||||||
|
out of bounds, then any other access of the same type (load, store, or
|
||||||
|
atomic) in the same SPIR-V block that accesses an address less
|
||||||
|
than 16 bytes away from the out of bounds address may: also be
|
||||||
|
considered out of bounds.
|
||||||
|
** Out-of-bounds buffer loads will return any of the following values:
|
||||||
|
*** Values from anywhere within the memory range(s) bound to the buffer
|
||||||
|
(possibly including bytes of memory past the end of the buffer, up to
|
||||||
|
the end of the bound range).
|
||||||
*** Zero values, or (0,0,0,x) vectors for vector reads where x is a valid
|
*** Zero values, or (0,0,0,x) vectors for vector reads where x is a valid
|
||||||
value represented in the type of the vector components and may: be any
|
value represented in the type of the vector components and may: be any
|
||||||
of:
|
of:
|
||||||
**** 0, 1, or the maximum representable positive integer value, for signed
|
**** 0, 1, or the maximum representable positive integer value, for signed
|
||||||
or unsigned integer components
|
or unsigned integer components
|
||||||
**** 0.0 or 1.0, for floating-point components
|
**** 0.0 or 1.0, for floating-point components
|
||||||
** When enabled, out-of-bounds writes may: modify values within the buffer
|
** Out-of-bounds writes may: modify values within the memory range(s) bound
|
||||||
object or be ignored.
|
to the buffer, but mustnot: modify any other memory.
|
||||||
** If not enabled, out of bounds accesses may: cause undefined behaviour
|
** Out-of-bounds atomics may: modify values within the memory range(s) bound
|
||||||
up-to and including process termination.
|
to the buffer, but mustnot: modify any other memory, and return an
|
||||||
|
undefined value.
|
||||||
|
** Vertex input attributes are considered out of bounds if the address of the
|
||||||
|
attribute plus the size of the attribute is greater than the size of the
|
||||||
|
bound buffer. Further, if any vertex input attribute using a specific
|
||||||
|
vertex input binding is out of bounds, then all vertex input attributes
|
||||||
|
using that vertex input binding for that vertex shader invocation are
|
||||||
|
considered out of bounds.
|
||||||
|
*** If a vertex input attribute is out of bounds, it will be assigned one
|
||||||
|
of the following values:
|
||||||
|
**** Values from anywhere within the memory range(s) bound to the buffer,
|
||||||
|
converted according to the format of the attribute.
|
||||||
|
**** Zero values, format converted according to the format of the attribute.
|
||||||
|
**** Zero values, or (0,0,0,x) vectors, as described above.
|
||||||
|
** If pname:robustBufferAccess is not enabled, out of bounds accesses may:
|
||||||
|
corrupt any memory within the process and cause undefined behaviour up
|
||||||
|
to and including application termination.
|
||||||
* [[features-features-fullDrawIndexUint32]] pname:fullDrawIndexUint32
|
* [[features-features-fullDrawIndexUint32]] pname:fullDrawIndexUint32
|
||||||
indicates the full 32-bit range of indices is supported for indexed draw
|
indicates the full 32-bit range of indices is supported for indexed draw
|
||||||
calls when using a elink:VkIndexType of ename:VK_INDEX_TYPE_UINT32.
|
calls when using a elink:VkIndexType of ename:VK_INDEX_TYPE_UINT32.
|
||||||
|
@ -29,6 +29,8 @@ Members
|
|||||||
* pname:sType is the type of this structure.
|
* pname:sType is the type of this structure.
|
||||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||||
* pname:flags is reserved for future use.
|
* pname:flags is reserved for future use.
|
||||||
|
* pname:topology is a elink:VkPrimitiveTopology defining the primitive
|
||||||
|
topology, as described below.
|
||||||
* pname:primitiveRestartEnable controls whether a special vertex index
|
* pname:primitiveRestartEnable controls whether a special vertex index
|
||||||
value is treated as restarting the assembly of primitives. This enable
|
value is treated as restarting the assembly of primitives. This enable
|
||||||
only applies to indexed draws (flink:vkCmdDrawIndexed and
|
only applies to indexed draws (flink:vkCmdDrawIndexed and
|
||||||
@ -37,8 +39,6 @@ Members
|
|||||||
fname:vkCmdBindIndexBuffer is equal to ename:VK_INDEX_TYPE_UINT32, or
|
fname:vkCmdBindIndexBuffer is equal to ename:VK_INDEX_TYPE_UINT32, or
|
||||||
0xFFFF when pname:indexType is equal to ename:VK_INDEX_TYPE_UINT16.
|
0xFFFF when pname:indexType is equal to ename:VK_INDEX_TYPE_UINT16.
|
||||||
Primitive restart is not allowed for ``list'' topologies.
|
Primitive restart is not allowed for ``list'' topologies.
|
||||||
* pname:topology is a elink:VkPrimitiveTopology defining the primitive
|
|
||||||
topology, as described below.
|
|
||||||
|
|
||||||
|
|
||||||
Description
|
Description
|
||||||
|
@ -26,7 +26,7 @@ Parameters
|
|||||||
* pname:pCreateInfo contains information used to create the command pool.
|
* pname:pCreateInfo contains information used to create the command pool.
|
||||||
* pname:pAllocator controls host memory allocation as described in the
|
* pname:pAllocator controls host memory allocation as described in the
|
||||||
<<memory-allocation, Memory Allocation>> chapter.
|
<<memory-allocation, Memory Allocation>> chapter.
|
||||||
* pname:pCommandPool points to an sname:VkCommandPool handle in which the
|
* pname:pCommandPool points to a sname:VkCommandPool handle in which the
|
||||||
created pool is returned.
|
created pool is returned.
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,12 +30,8 @@ include::../api/protos/vkGetDeviceProcAddr.txt[]
|
|||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
|
|
||||||
* pname:device is the logical device that provides the function pointer.
|
The table below defines the various use cases for fname:vkGetDeviceProcAddr
|
||||||
* pname:pName is the name of any Vulkan command whose first parameter
|
and expected return value for each case.
|
||||||
is one of
|
|
||||||
** sname:VkDevice
|
|
||||||
** sname:VkQueue
|
|
||||||
** sname:VkCommandBuffer
|
|
||||||
|
|
||||||
|
|
||||||
Description
|
Description
|
||||||
@ -44,17 +40,32 @@ Description
|
|||||||
The returned function pointer is of type tlink:PFN_vkVoidFunction, and must
|
The returned function pointer is of type tlink:PFN_vkVoidFunction, and must
|
||||||
be cast to the type of the command being queried.
|
be cast to the type of the command being queried.
|
||||||
|
|
||||||
If pname:pName is not the name of one of these Vulkan commands, and is
|
.vkGetDeviceProcAddr behavior
|
||||||
not the name of an extension command belonging to an extension enabled for
|
[width="80%",options="header",align="center"]
|
||||||
pname:device, then fname:vkGetDeviceProcAddr will return `NULL`.
|
|=====
|
||||||
|
| pname:device | pname:pName | return value
|
||||||
|
| NULL | * | undefined
|
||||||
|
| invalid device | * | undefined
|
||||||
|
| device | NULL | undefined
|
||||||
|
| device | core Vulkan command^1^ | fp
|
||||||
|
| device | enabled device extension commands for pname:device | fp
|
||||||
|
| device | * (any pname:pName not covered above) | NULL
|
||||||
|
|=====
|
||||||
|
|
||||||
|
1::
|
||||||
|
pname:pName is the name of any Vulkan command whose first parameter
|
||||||
|
is sname:VkDevice or any of its dispatchable children (e.g. sname:VkQueue,
|
||||||
|
sname:vkCommandBuffer).
|
||||||
|
|
||||||
include::../validity/protos/vkGetDeviceProcAddr.txt[]
|
include::../validity/protos/vkGetDeviceProcAddr.txt[]
|
||||||
|
|
||||||
|
// refEnd vkGetDeviceProcAddr PFN_vkVoidFunction
|
||||||
|
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
slink:VkDevice
|
tlink:PFN_vkVoidFunction, slink:VkDevice
|
||||||
|
|
||||||
|
|
||||||
Document Notes
|
Document Notes
|
||||||
|
@ -25,7 +25,7 @@ Parameters
|
|||||||
----------
|
----------
|
||||||
|
|
||||||
* pname:instance is the instance that the function pointer will be
|
* pname:instance is the instance that the function pointer will be
|
||||||
compatible with.
|
compatible with, or `NULL` for commands not dependent on any instance.
|
||||||
* pname:pName is the name of the command to obtain.
|
* pname:pName is the name of the command to obtain.
|
||||||
|
|
||||||
|
|
||||||
@ -40,25 +40,36 @@ Loaders are encouraged to export function symbols for all other core
|
|||||||
Vulkan commands as well; if this is done, then applications that use only
|
Vulkan commands as well; if this is done, then applications that use only
|
||||||
the core Vulkan commands have no need to use fname:vkGetInstanceProcAddr.
|
the core Vulkan commands have no need to use fname:vkGetInstanceProcAddr.
|
||||||
|
|
||||||
Function pointers to commands that do not operate on a specific instance can:
|
The table below defines the various use cases for fname:vkGetInstanceProcAddr
|
||||||
be obtained by using this command with pname:instance equal to `NULL`. The
|
and expected return value ("fp" is function pointer) for each case.
|
||||||
following commands can: be accessed this way:
|
|
||||||
|
|
||||||
* flink:vkEnumerateInstanceExtensionProperties
|
|
||||||
* flink:vkEnumerateInstanceLayerProperties
|
|
||||||
* flink:vkCreateInstance
|
|
||||||
|
|
||||||
The returned function pointer is of type tlink:PFN_vkVoidFunction, and must
|
The returned function pointer is of type tlink:PFN_vkVoidFunction, and must
|
||||||
be cast to the type of the command being queried.
|
be cast to the type of the command being queried.
|
||||||
|
|
||||||
If pname:instance is a valid sname:VkInstance, function pointers to any
|
.vkGetInstanceProcAddr behavior
|
||||||
commands that operate on pname:instance or a child of pname:instance can: be
|
[width="80%",options="header",align="center"]
|
||||||
obtained. The returned function pointer must: only be called with a
|
|=====
|
||||||
dispatchable object (the first parameter) that is a child of pname:instance.
|
| pname:instance | pname:pName | return value
|
||||||
|
| * | NULL | undefined
|
||||||
|
| invalid instance | * | undefined
|
||||||
|
| NULL | flink:vkEnumerateInstanceExtensionProperties | fp
|
||||||
|
| NULL | flink:vkEnumerateInstanceLayerProperties | fp
|
||||||
|
| NULL | flink:vkCreateInstance | fp
|
||||||
|
| NULL | * (any pname:pName not covered above) | NULL
|
||||||
|
| instance | core Vulkan command | fp^1^
|
||||||
|
| instance | enabled instance extension commands for pname:instance | fp^1^
|
||||||
|
| instance | available device extension commands for pname:instance | fp^1,2^
|
||||||
|
| instance | * (any pname:pName not covered above) | NULL
|
||||||
|
|=====
|
||||||
|
|
||||||
If pname:pName is not the name of a core Vulkan command, or is an
|
1::
|
||||||
extension command for any extension not supported by any available layer or
|
The returned function pointer must: only be called with a dispatchable object
|
||||||
implementation, then fname:vkGetInstanceProcAddr will return `NULL`.
|
(the first parameter) that is a child of pname:instance.
|
||||||
|
e.g. sname:VkInstance, sname:VkPhysicalDevice, sname:VkDevice, sname:VkQueue, or
|
||||||
|
sname:VkCommandBuffer.
|
||||||
|
|
||||||
|
2::
|
||||||
|
available extension is an extension function supported by any of the loader, ICD or layer.
|
||||||
|
|
||||||
ifdef::editing-notes[]
|
ifdef::editing-notes[]
|
||||||
[NOTE]
|
[NOTE]
|
||||||
|
@ -187,23 +187,28 @@ looks as it does.
|
|||||||
[[sample-command]]
|
[[sample-command]]
|
||||||
== Sample Command Description: Creating Command Pools
|
== Sample Command Description: Creating Command Pools
|
||||||
|
|
||||||
To create a command pool, call:
|
// refBegin vkCreateCommandPool Create a new command pool object.
|
||||||
|
|
||||||
[NOTE]
|
To create a command pool, call:
|
||||||
.Guideline
|
|
||||||
====
|
|
||||||
Use a short, active sentence when describing what commands do, instead of
|
|
||||||
more passive phrasing like ``A command pool is created by calling:'' or ``The
|
|
||||||
application may create a command pool by calling:''.
|
|
||||||
====
|
|
||||||
|
|
||||||
include::../api/protos/vkCreateCommandPool.txt[]
|
include::../api/protos/vkCreateCommandPool.txt[]
|
||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
.Guideline
|
.Guideline
|
||||||
====
|
====
|
||||||
After the description, include the autogenerated prototype for the command
|
Begin the command description with a comment delimiting the language for
|
||||||
from the `../protos/` directory:
|
<<writing-refpages,automatic extraction into a reference page>>.
|
||||||
|
|
||||||
|
Use a short, active sentence when describing what commands do, instead of
|
||||||
|
more passive phrasing like ``A command pool is created by calling:'' or ``The
|
||||||
|
application may create a command pool by calling:''.
|
||||||
|
|
||||||
|
After the description, include the autogenerated prototype for the
|
||||||
|
command from the `../protos/` directory:
|
||||||
|
|
||||||
|
// refBegin vkCreateCommandPool Create a new command pool object.
|
||||||
|
|
||||||
|
To create a command pool, call:
|
||||||
|
|
||||||
include::../api/protos/vkCreateCommandPool.txt[]
|
include::../api/protos/vkCreateCommandPool.txt[]
|
||||||
|
|
||||||
@ -254,8 +259,13 @@ Parameter and member validation language for commands and structures is also
|
|||||||
autogenerated from vk.xml, and included from the `../validity/` directories:
|
autogenerated from vk.xml, and included from the `../validity/` directories:
|
||||||
|
|
||||||
include::../validity/protos/vkCreateCommandPool.txt[]
|
include::../validity/protos/vkCreateCommandPool.txt[]
|
||||||
|
|
||||||
|
Structures and enumerations first used as parameters of a command are
|
||||||
|
described next.
|
||||||
====
|
====
|
||||||
|
|
||||||
|
// refBegin VkCommandPoolCreateInfo - Structure specifying parameters of a newly created command pool
|
||||||
|
|
||||||
The sname:VkCommandPoolCreateInfo structure is defined as:
|
The sname:VkCommandPoolCreateInfo structure is defined as:
|
||||||
|
|
||||||
include::../api/structs/VkCommandPoolCreateInfo.txt[]
|
include::../api/structs/VkCommandPoolCreateInfo.txt[]
|
||||||
@ -263,9 +273,18 @@ include::../api/structs/VkCommandPoolCreateInfo.txt[]
|
|||||||
[NOTE]
|
[NOTE]
|
||||||
.Guideline
|
.Guideline
|
||||||
====
|
====
|
||||||
Structures and enumerations first used as parameters of a command are
|
Begin the structure description with a comment delimiting the language for
|
||||||
described next, by including the autogenerated interface file for that
|
<<writing-refpages,automatic extraction into a reference page>>.
|
||||||
structure or enumeration:
|
|
||||||
|
Use a short, active paragraph to introduce the structure, usually just
|
||||||
|
``The sname:VkStructureName structure is defined as:''.
|
||||||
|
|
||||||
|
After the description, include the autogenerated definition for the
|
||||||
|
structure from the `../structs/` directory:
|
||||||
|
|
||||||
|
// refBegin VkCommandPoolCreateInfo - Structure specifying parameters of a newly created command pool
|
||||||
|
|
||||||
|
The sname:VkCommandPoolCreateInfo structure is defined as:
|
||||||
|
|
||||||
include::../api/structs/VkCommandPoolCreateInfo.txt[]
|
include::../api/structs/VkCommandPoolCreateInfo.txt[]
|
||||||
====
|
====
|
||||||
@ -277,13 +296,14 @@ structure or enumeration:
|
|||||||
include:
|
include:
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
|
// refBegin VkCommandPoolCreateFlagBits - Bitmask specifying usage behavior for a command pool
|
||||||
include::../api/enums/VkCommandPoolCreateFlagBits.txt[]
|
include::../api/enums/VkCommandPoolCreateFlagBits.txt[]
|
||||||
|
|
||||||
** ename:VK_COMMAND_POOL_CREATE_TRANSIENT_BIT indicates that command buffers
|
|
||||||
allocated from the pool will be short-lived.
|
|
||||||
** ename:VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT controls whether
|
|
||||||
command buffers allocated from the pool can: be individually reset.
|
|
||||||
--
|
--
|
||||||
|
+
|
||||||
|
** ename:VK_COMMAND_POOL_CREATE_TRANSIENT_BIT indicates that command buffers
|
||||||
|
allocated from the pool will be short-lived.
|
||||||
|
** ename:VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT controls whether
|
||||||
|
command buffers allocated from the pool can: be individually reset.
|
||||||
* pname:queueFamilyIndex designates a queue family. Command buffers in
|
* pname:queueFamilyIndex designates a queue family. Command buffers in
|
||||||
this command pool must: be submitted on queues from the same family.
|
this command pool must: be submitted on queues from the same family.
|
||||||
|
|
||||||
@ -297,8 +317,7 @@ specific to the structure.
|
|||||||
|
|
||||||
----
|
----
|
||||||
* pname:sType is the type of this structure.
|
* pname:sType is the type of this structure.
|
||||||
* pname:pNext is `NULL` or a pointer to an
|
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||||
extension-specific structure.
|
|
||||||
----
|
----
|
||||||
|
|
||||||
In some cases, such as when the type of a member is itself a new type, the
|
In some cases, such as when the type of a member is itself a new type, the
|
||||||
@ -308,18 +327,18 @@ asciidoc parser. It is usually best to append a block following the first
|
|||||||
paragraph of such a list item:
|
paragraph of such a list item:
|
||||||
|
|
||||||
----
|
----
|
||||||
* pname:flags is a combination of bitmask flags
|
* pname:flags is a bitmask indicating usage behavior for the pool and
|
||||||
indicating usage behavior for the pool and
|
command buffers allocated from it. Bits which can: be set include:
|
||||||
command buffers allocated from it. Possible
|
|
||||||
values include:
|
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
\include::../api/enums/VkCommandPoolCreateFlagBits.txt[]
|
// refBegin VkCommandPoolCreateFlagBits - Bitmask specifying usage behavior for a command pool
|
||||||
|
include::../api/enums/VkCommandPoolCreateFlagBits.txt[]
|
||||||
** ename:VK_COMMAND_POOL_CREATE_TRANSIENT_BIT
|
--
|
||||||
|
+
|
||||||
|
** ename:VK_COMMAND_POOL_CREATE_TRANSIENT_BIT
|
||||||
indicates that command buffers allocated
|
indicates that command buffers allocated
|
||||||
from the pool will be short-lived.
|
from the pool will be short-lived.
|
||||||
** ename:VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
|
** ename:VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
|
||||||
controls whether command buffers allocated from
|
controls whether command buffers allocated from
|
||||||
the pool can: be individually reset.
|
the pool can: be individually reset.
|
||||||
--
|
--
|
||||||
@ -336,3 +355,56 @@ for this structure:
|
|||||||
|
|
||||||
include::../validity/structs/VkCommandPoolCreateInfo.txt[]
|
include::../validity/structs/VkCommandPoolCreateInfo.txt[]
|
||||||
====
|
====
|
||||||
|
|
||||||
|
|
||||||
|
[[writing-refpages]]
|
||||||
|
== Markup For Automatic Reference Page Extraction
|
||||||
|
|
||||||
|
The Vulkan reference pages are (mostly) being extracted from
|
||||||
|
corresponding sections of the API Specification. This requires that the
|
||||||
|
markup and writing conventions described above be adhered to rigidly.
|
||||||
|
|
||||||
|
The extraction scripts for a given page rely on the existence of the
|
||||||
|
asciidoc +include+ of the autogenerated definition of that command,
|
||||||
|
structure, or other API interface element. Various heuristics are used
|
||||||
|
to determine which text to extract for that page; the general model is:
|
||||||
|
|
||||||
|
* Optional (but usually specified) comment line specifying the
|
||||||
|
interface name and the short description used in the title of the
|
||||||
|
corresponding ref page:
|
||||||
|
+
|
||||||
|
----
|
||||||
|
// refBegin name - description
|
||||||
|
----
|
||||||
|
+
|
||||||
|
* A paragraph of text introducing the definition of the interface. If
|
||||||
|
the +refBegin+ comment does not exist, this paragraph must be
|
||||||
|
present.
|
||||||
|
* The +include+ line for the interface, which must be consistent
|
||||||
|
with the interface name in the comment line.
|
||||||
|
* A bullet list describing function parameters, structure members,
|
||||||
|
enumerants in an enumerated type, etc. This list should contain no
|
||||||
|
empty lines, as the extraction script classifies the uninterrupted
|
||||||
|
block of text following the +include+ directive as the +Parameters+
|
||||||
|
or +Members+ section of the ref page.
|
||||||
|
* Optional paragraphs of text making up the +Description+ section of
|
||||||
|
the ref page.
|
||||||
|
* The +include+ line for the validity statement of commands and
|
||||||
|
structures. Other interfaces such as enumerated types do not have
|
||||||
|
validity statements.
|
||||||
|
* Comment line specifying the end of the extracted text for the
|
||||||
|
reference page and optional page names to link to in the +See Also+
|
||||||
|
section of the page. If the validity +include+ is not present, this
|
||||||
|
line must be present:
|
||||||
|
+
|
||||||
|
----
|
||||||
|
// refEnd name [seeAlsoNames]*
|
||||||
|
----
|
||||||
|
|
||||||
|
All elements specifying an interface name (+refBegin+ and +refEnd+
|
||||||
|
comments, interface +include+ line, and validity +include+ line) must
|
||||||
|
use the same interface name, if present. Otherwise the extraction script
|
||||||
|
is either unable to extract that page, or will extract the wrong text.
|
||||||
|
The extraction process is somewhat fragile, so care should be taken and
|
||||||
|
the results of reference page extraction verified after making changes
|
||||||
|
to that portion of the specification source.
|
||||||
|
@ -153,6 +153,8 @@ include::style/writing.txt[]
|
|||||||
|
|
||||||
= Revision History
|
= Revision History
|
||||||
|
|
||||||
|
* July 26, 2016 - Add section describing <<writing-refpages,markup for
|
||||||
|
automatic reference page extraction>>.
|
||||||
* July 18, 2016 - Add examples of function-parameter and structure-member
|
* July 18, 2016 - Add examples of function-parameter and structure-member
|
||||||
markup (based on public issue 286).
|
markup (based on public issue 286).
|
||||||
* July 11, 2016 - Change the document title.
|
* July 11, 2016 - Change the document title.
|
||||||
|
@ -18,6 +18,7 @@ endif::doctype-manpage[]
|
|||||||
* Each of pname:commandBuffer, pname:layout, and the elements of pname:pDescriptorSets must: have been created, allocated, or retrieved from the same sname:VkDevice
|
* Each of pname:commandBuffer, pname:layout, and the elements of pname:pDescriptorSets must: have been created, allocated, or retrieved from the same sname:VkDevice
|
||||||
* Any given element of pname:pDescriptorSets must: have been created with a sname:VkDescriptorSetLayout that matches (is the same as, or defined identically to) the sname:VkDescriptorSetLayout at set _n_ in pname:layout, where _n_ is the sum of pname:firstSet and the index into pname:pDescriptorSets
|
* Any given element of pname:pDescriptorSets must: have been created with a sname:VkDescriptorSetLayout that matches (is the same as, or defined identically to) the sname:VkDescriptorSetLayout at set _n_ in pname:layout, where _n_ is the sum of pname:firstSet and the index into pname:pDescriptorSets
|
||||||
* pname:dynamicOffsetCount must: be equal to the total number of dynamic descriptors in pname:pDescriptorSets
|
* pname:dynamicOffsetCount must: be equal to the total number of dynamic descriptors in pname:pDescriptorSets
|
||||||
|
* The sum of pname:firstSet and pname:descriptorSetCount must: be less than or equal to sname:VkPipelineLayoutCreateInfo::pname:setLayoutCount provided when pname:layout was created
|
||||||
* pname:pipelineBindPoint must: be supported by the pname:commandBuffer's parent sname:VkCommandPool's queue family
|
* pname:pipelineBindPoint must: be supported by the pname:commandBuffer's parent sname:VkCommandPool's queue family
|
||||||
* Any given element of pname:pDynamicOffsets must: satisfy the required alignment for the corresponding descriptor binding's descriptor type
|
* Any given element of pname:pDynamicOffsets must: satisfy the required alignment for the corresponding descriptor binding's descriptor type
|
||||||
ifndef::doctype-manpage[]
|
ifndef::doctype-manpage[]
|
||||||
|
@ -19,6 +19,7 @@ endif::doctype-manpage[]
|
|||||||
* Any given element of pname:pCommandBuffers mustnot: be already pending execution in pname:commandBuffer, or appear twice in pname:pCommandBuffers, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag
|
* Any given element of pname:pCommandBuffers mustnot: be already pending execution in pname:commandBuffer, or appear twice in pname:pCommandBuffers, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag
|
||||||
* Any given element of pname:pCommandBuffers mustnot: be already pending execution in any other sname:VkCommandBuffer, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag
|
* Any given element of pname:pCommandBuffers mustnot: be already pending execution in any other sname:VkCommandBuffer, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag
|
||||||
* Any given element of pname:pCommandBuffers must: be in the executable state
|
* Any given element of pname:pCommandBuffers must: be in the executable state
|
||||||
|
* Any given element of pname:pCommandBuffers must: have been allocated from a sname:VkCommandPool that was created for the same queue family as the sname:VkCommandPool from which pname:commandBuffer was allocated
|
||||||
* If fname:vkCmdExecuteCommands is being called within a render pass instance, that render pass instance must: have been begun with the pname:contents parameter of fname:vkCmdBeginRenderPass set to ename:VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
|
* If fname:vkCmdExecuteCommands is being called within a render pass instance, that render pass instance must: have been begun with the pname:contents parameter of fname:vkCmdBeginRenderPass set to ename:VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
|
||||||
* If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
|
* If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
|
||||||
* If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with sname:VkCommandBufferInheritanceInfo::pname:subpass set to the index of the subpass which the given command buffer will be executed in
|
* If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with sname:VkCommandBufferInheritanceInfo::pname:subpass set to the index of the subpass which the given command buffer will be executed in
|
||||||
|
@ -9,8 +9,6 @@ Valid Usage
|
|||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
* If pname:instance is not `NULL`, pname:instance must: be a valid sname:VkInstance handle
|
* If pname:instance is not `NULL`, pname:instance must: be a valid sname:VkInstance handle
|
||||||
* pname:pName must: be a null-terminated string
|
* pname:pName must: be a null-terminated string
|
||||||
* If pname:instance is `NULL`, pname:pName must: be "vkEnumerateInstanceExtensionProperties", "vkEnumerateInstanceLayerProperties", or "vkCreateInstance"
|
|
||||||
* If pname:instance is not `NULL`, pname:pName mustnot: be "vkEnumerateInstanceExtensionProperties", "vkEnumerateInstanceLayerProperties", or "vkCreateInstance"
|
|
||||||
ifndef::doctype-manpage[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
|
@ -33,7 +33,7 @@ endif::doctype-manpage[]
|
|||||||
* pname:subresourceRange must: be a valid image subresource range for pname:image (see <<resources-image-views>>)
|
* pname:subresourceRange must: be a valid image subresource range for pname:image (see <<resources-image-views>>)
|
||||||
* If pname:image was created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be compatible with the pname:format used to create pname:image, as defined in <<features-formats-compatibility-classes,Format Compatibility Classes>>
|
* If pname:image was created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be compatible with the pname:format used to create pname:image, as defined in <<features-formats-compatibility-classes,Format Compatibility Classes>>
|
||||||
* If pname:image was not created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be identical to the pname:format used to create pname:image
|
* If pname:image was not created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be identical to the pname:format used to create pname:image
|
||||||
* pname:subResourceRange and pname:viewType must: be compatible with the image, as described in the <<resources-image-views-compatibility,table below>>
|
* pname:subResourceRange and pname:viewType must: be compatible with the image, as described in the <<resources-image-views-compatibility,compatibility table>>
|
||||||
ifndef::doctype-manpage[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
|
@ -19,14 +19,16 @@ When patches to the header or the includes are needed, follow this workflow:
|
|||||||
- Edit vk.xml
|
- Edit vk.xml
|
||||||
- make ; make test
|
- make ; make test
|
||||||
(this just generates ../vulkan/vulkan.h)
|
(this just generates ../vulkan/vulkan.h)
|
||||||
- make full_install
|
- make install doc_install
|
||||||
(this generates all targets)
|
(this generates header and registry documentation)
|
||||||
|
- (cd ../../doc/specs/vulkan && make generated)
|
||||||
|
(this generates asciidoc includes)
|
||||||
- Repeat until the header and/or includes are correct
|
- Repeat until the header and/or includes are correct
|
||||||
- Commit your changes to your local git branch
|
- Commit your changes to your local git branch
|
||||||
- Push the branch to the git server and create a merge request against the
|
- Push the branch to the git server and create a merge request against the
|
||||||
specification branch ("1.0") or other appropriate target.
|
specification branch ("1.0") or other appropriate target.
|
||||||
|
|
||||||
See 'readme.pdf' for a detailed description of the schema, and some examples
|
See 'readme.txt' for a detailed description of the schema, and some examples
|
||||||
of how to make simple changes in the API via the XML.
|
of how to make simple changes in the API via the XML.
|
||||||
|
|
||||||
The generator scripts are written in Python 3, using the etree package for
|
The generator scripts are written in Python 3, using the etree package for
|
||||||
@ -40,14 +42,16 @@ FILES
|
|||||||
Makefile - generates header and JSON from XML (see below)
|
Makefile - generates header and JSON from XML (see below)
|
||||||
vk.xml - XML API description
|
vk.xml - XML API description
|
||||||
genvk.py - Python script to generate vulkan.h and other targets.
|
genvk.py - Python script to generate vulkan.h and other targets.
|
||||||
readme.tex - Source for detailed description of the XML schema
|
readme.txt - Source for detailed description of the XML schema
|
||||||
readme.pdf - Generated document describing the XML schema and giving
|
|
||||||
some examples of making simple changes to add API features
|
|
||||||
registry.rnc - RelaxNG compact schema for validating XML against the
|
registry.rnc - RelaxNG compact schema for validating XML against the
|
||||||
schema
|
schema
|
||||||
reg.py - Python tools to read XML file and convert it into C headers
|
reg.py - Python tools to read XML file and convert it into C headers
|
||||||
generator.py - output generator for C. Others are possible, although
|
generator.py - output generator base class.
|
||||||
vk.xml contains C-isms which would have to be factored out.
|
cgenerator.py - C output generator for vulkan.h
|
||||||
|
docgenerator.py - Asciidoc interface language include generator
|
||||||
|
hostsyncgenerator.py - Asciidoc host sync table generator
|
||||||
|
pygenerator.py - Generates python encoding of the API description
|
||||||
|
validitygenerator.py - Asciidoc validity language generator
|
||||||
../vulkan/vulkan.h - Generated header
|
../vulkan/vulkan.h - Generated header
|
||||||
|
|
||||||
MAKEFILE TARGETS
|
MAKEFILE TARGETS
|
||||||
@ -55,21 +59,14 @@ MAKEFILE TARGETS
|
|||||||
|
|
||||||
install or ../vulkan/vulkan.h (default target) - regenerate vulkan.h in
|
install or ../vulkan/vulkan.h (default target) - regenerate vulkan.h in
|
||||||
../vulkan .
|
../vulkan .
|
||||||
vulkan-docs - regenerate spec/ref page API include .txt files and
|
doc_install - generates detailed description of the XML schema from
|
||||||
install under ../../doc/specs/vulkan/*/ . In general, this should be
|
registry.txt in $(OUTDIR)/registry.html . In general this should be
|
||||||
left until a branch is merged to master.
|
left until a branch is merged to 1.0.
|
||||||
full_install - combination of 'install' and 'vulkan-docs' targets.
|
|
||||||
Again, in general this should be left until a branch is merged to
|
|
||||||
master.
|
|
||||||
readme.pdf - detailed description of the XML schema. Normally this need
|
|
||||||
not be rebuilt unless you are changing the schema and updating
|
|
||||||
readme.tex.
|
|
||||||
test - make sure ../vulkan/vulkan.h compiles. Important!
|
test - make sure ../vulkan/vulkan.h compiles. Important!
|
||||||
validate - validate vk.xml against the schema. Requires 'jing' tool
|
validate - validate vk.xml against the schema. Requires 'jing' tool
|
||||||
installed.
|
installed.
|
||||||
clobber - remove generated and cache files, including the API include
|
clobber - remove generated files. Usually done when to merging to 1.0
|
||||||
files. Usually done while merging to master via 'make clobber ; make
|
via 'make clobber ; make install doc_install'.
|
||||||
full_install'
|
|
||||||
|
|
||||||
If you have trouble running the Makefile on your platorm, try using
|
If you have trouble running the Makefile on your platorm, try using
|
||||||
the command line:
|
the command line:
|
||||||
@ -173,3 +170,7 @@ CHANGE LOG
|
|||||||
2016/05/31
|
2016/05/31
|
||||||
|
|
||||||
Remove dependency on lxml.
|
Remove dependency on lxml.
|
||||||
|
|
||||||
|
2016/07/27
|
||||||
|
|
||||||
|
Update documentation for changes to schema and generator scripts.
|
||||||
|
@ -106,6 +106,8 @@ Types = element types {
|
|||||||
# optional - whether this value can be omitted by providing NULL (for
|
# optional - whether this value can be omitted by providing NULL (for
|
||||||
# pointers), VK_NULL_HANDLE (for handles) or 0 (for bitmasks/values)
|
# pointers), VK_NULL_HANDLE (for handles) or 0 (for bitmasks/values)
|
||||||
# noautovalidity - tag stating that no automatic validity language should be generated
|
# noautovalidity - tag stating that no automatic validity language should be generated
|
||||||
|
# validextensionstructs - comma-separate list of legal structure types in pNext chain
|
||||||
|
# values - comma-separated list of legal values, usually used only for sType enums
|
||||||
#
|
#
|
||||||
# *** There's a problem here: I'm not sure how to represent the <type>
|
# *** There's a problem here: I'm not sure how to represent the <type>
|
||||||
# syntax where it may contain arbitrarily interleaved text, <type>, and
|
# syntax where it may contain arbitrarily interleaved text, <type>, and
|
||||||
@ -141,6 +143,8 @@ Type = element type {
|
|||||||
attribute externsync { text } ? ,
|
attribute externsync { text } ? ,
|
||||||
attribute optional { text } ? ,
|
attribute optional { text } ? ,
|
||||||
attribute noautovalidity { text } ? ,
|
attribute noautovalidity { text } ? ,
|
||||||
|
attribute validextensionstructs { text } ? ,
|
||||||
|
attribute values { text } ? ,
|
||||||
mixed {
|
mixed {
|
||||||
element type { TypeName } ? ,
|
element type { TypeName } ? ,
|
||||||
element name { text },
|
element name { text },
|
||||||
|
@ -366,6 +366,9 @@ member.
|
|||||||
* attr:validextensionstructs - only valid on the +pNext+ member of a
|
* attr:validextensionstructs - only valid on the +pNext+ member of a
|
||||||
struct. This is a comma-separated list of structures that may be
|
struct. This is a comma-separated list of structures that may be
|
||||||
accepted by +pNext+ instead of +NULL+
|
accepted by +pNext+ instead of +NULL+
|
||||||
|
* attr:values - only valid on the +sType+ member of a struct. This is a
|
||||||
|
comma-separated list of enumerant values that are valid for the
|
||||||
|
structure type; usually there is only a single value.
|
||||||
* attr:len - if the member is an array, len may be one or more of the
|
* attr:len - if the member is an array, len may be one or more of the
|
||||||
following things, separated by commas (one for each array
|
following things, separated by commas (one for each array
|
||||||
indirection): another member of that struct; +"null-terminated"+ for
|
indirection): another member of that struct; +"null-terminated"+ for
|
||||||
|
@ -670,6 +670,14 @@ class ValidityOutputGenerator(OutputGenerator):
|
|||||||
asciidoc += self.makeParameterName(paramname.text)
|
asciidoc += self.makeParameterName(paramname.text)
|
||||||
asciidoc += ' must: be '
|
asciidoc += ' must: be '
|
||||||
|
|
||||||
|
values = param.attrib.get('values')
|
||||||
|
if values:
|
||||||
|
# Extract each enumerant value. They could be validated in the
|
||||||
|
# same fashion as validextensionstructs in
|
||||||
|
# makeStructureExtensionPointer, although that's not relevant in
|
||||||
|
# the current extension struct model.
|
||||||
|
valuelist = [ self.makeEnumerantName(v) for v in values.split(',') ]
|
||||||
|
else:
|
||||||
structuretype = ''
|
structuretype = ''
|
||||||
for elem in re.findall(r'(([A-Z][a-z]+)|([A-Z][A-Z]+))', blockname):
|
for elem in re.findall(r'(([A-Z][a-z]+)|([A-Z][A-Z]+))', blockname):
|
||||||
if elem[0] == 'Vk':
|
if elem[0] == 'Vk':
|
||||||
@ -677,8 +685,13 @@ class ValidityOutputGenerator(OutputGenerator):
|
|||||||
else:
|
else:
|
||||||
structuretype += elem[0].upper()
|
structuretype += elem[0].upper()
|
||||||
structuretype += '_'
|
structuretype += '_'
|
||||||
|
valuelist = [ self.makeEnumerantName(structuretype[:-1]) ]
|
||||||
|
|
||||||
asciidoc += self.makeEnumerantName(structuretype[:-1])
|
if len(valuelist) > 0:
|
||||||
|
if len(valuelist) == 1:
|
||||||
|
asciidoc += valuelist[0]
|
||||||
|
else:
|
||||||
|
asciidoc += (', ').join(valuelist[:-1]) + ', or ' + valuelist[-1]
|
||||||
asciidoc += '\n'
|
asciidoc += '\n'
|
||||||
|
|
||||||
return asciidoc
|
return asciidoc
|
||||||
|
154
src/spec/vk.xml
154
src/spec/vk.xml
@ -101,7 +101,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<type category="define">// Vulkan 1.0 version number
|
<type category="define">// Vulkan 1.0 version number
|
||||||
#define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)</type> <!-- The patch version here should never be set to anything other than 0 -->
|
#define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)</type> <!-- The patch version here should never be set to anything other than 0 -->
|
||||||
<type category="define">// Version of this file
|
<type category="define">// Version of this file
|
||||||
#define <name>VK_HEADER_VERSION</name> 22</type>
|
#define <name>VK_HEADER_VERSION</name> 23</type>
|
||||||
|
|
||||||
<type category="define">
|
<type category="define">
|
||||||
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
|
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
|
||||||
@ -455,7 +455,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member> <!-- Free-form description of the layer -->
|
<member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member> <!-- Free-form description of the layer -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkApplicationInfo">
|
<type category="struct" name="VkApplicationInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO -->
|
<member values="VK_STRUCTURE_TYPE_APPLICATION_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true" len="null-terminated">const <type>char</type>* <name>pApplicationName</name></member>
|
<member optional="true" len="null-terminated">const <type>char</type>* <name>pApplicationName</name></member>
|
||||||
<member><type>uint32_t</type> <name>applicationVersion</name></member>
|
<member><type>uint32_t</type> <name>applicationVersion</name></member>
|
||||||
@ -481,7 +481,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDeviceQueueCreateInfo">
|
<type category="struct" name="VkDeviceQueueCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkDeviceQueueCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkDeviceQueueCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>uint32_t</type> <name>queueFamilyIndex</name></member>
|
<member><type>uint32_t</type> <name>queueFamilyIndex</name></member>
|
||||||
@ -494,7 +494,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDeviceCreateInfo">
|
<type category="struct" name="VkDeviceCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkDeviceCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkDeviceCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>uint32_t</type> <name>queueCreateInfoCount</name></member>
|
<member><type>uint32_t</type> <name>queueCreateInfoCount</name></member>
|
||||||
@ -509,7 +509,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkInstanceCreateInfo">
|
<type category="struct" name="VkInstanceCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkInstanceCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkInstanceCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member optional="true">const <type>VkApplicationInfo</type>* <name>pApplicationInfo</name></member>
|
<member optional="true">const <type>VkApplicationInfo</type>* <name>pApplicationInfo</name></member>
|
||||||
@ -533,7 +533,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member><type>VkMemoryHeap</type> <name>memoryHeaps</name>[<enum>VK_MAX_MEMORY_HEAPS</enum>]</member>
|
<member><type>VkMemoryHeap</type> <name>memoryHeaps</name>[<enum>VK_MAX_MEMORY_HEAPS</enum>]</member>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkMemoryAllocateInfo">
|
<type category="struct" name="VkMemoryAllocateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member validextensionstructs="VkDedicatedAllocationMemoryAllocateInfoNV">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member validextensionstructs="VkDedicatedAllocationMemoryAllocateInfoNV">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkDeviceSize</type> <name>allocationSize</name></member> <!-- Size of memory allocation -->
|
<member><type>VkDeviceSize</type> <name>allocationSize</name></member> <!-- Size of memory allocation -->
|
||||||
<member><type>uint32_t</type> <name>memoryTypeIndex</name></member> <!-- Index of the of the memory type to allocate from -->
|
<member><type>uint32_t</type> <name>memoryTypeIndex</name></member> <!-- Index of the of the memory type to allocate from -->
|
||||||
@ -568,7 +568,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member optional="true"><type>VkMemoryHeapFlags</type> <name>flags</name></member> <!-- Flags for the heap-->
|
<member optional="true"><type>VkMemoryHeapFlags</type> <name>flags</name></member> <!-- Flags for the heap-->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkMappedMemoryRange">
|
<type category="struct" name="VkMappedMemoryRange">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE -->
|
<member values="VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkDeviceMemory</type> <name>memory</name></member> <!-- Mapped memory object -->
|
<member><type>VkDeviceMemory</type> <name>memory</name></member> <!-- Mapped memory object -->
|
||||||
<member><type>VkDeviceSize</type> <name>offset</name></member> <!-- Offset within the memory object where the range starts -->
|
<member><type>VkDeviceSize</type> <name>offset</name></member> <!-- Offset within the memory object where the range starts -->
|
||||||
@ -609,7 +609,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member noautovalidity="true"><type>VkImageLayout</type> <name>imageLayout</name></member> <!-- Layout the image is expected to be in when accessed using this descriptor (only used if imageView is not VK_NULL_HANDLE). -->
|
<member noautovalidity="true"><type>VkImageLayout</type> <name>imageLayout</name></member> <!-- Layout the image is expected to be in when accessed using this descriptor (only used if imageView is not VK_NULL_HANDLE). -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkWriteDescriptorSet">
|
<type category="struct" name="VkWriteDescriptorSet">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET -->
|
<member values="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkDescriptorSet</type> <name>dstSet</name></member> <!-- Destination descriptor set -->
|
<member><type>VkDescriptorSet</type> <name>dstSet</name></member> <!-- Destination descriptor set -->
|
||||||
<member><type>uint32_t</type> <name>dstBinding</name></member> <!-- Binding within the destination descriptor set to write -->
|
<member><type>uint32_t</type> <name>dstBinding</name></member> <!-- Binding within the destination descriptor set to write -->
|
||||||
@ -640,7 +640,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkCopyDescriptorSet">
|
<type category="struct" name="VkCopyDescriptorSet">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET -->
|
<member values="VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkDescriptorSet</type> <name>srcSet</name></member> <!-- Source descriptor set -->
|
<member><type>VkDescriptorSet</type> <name>srcSet</name></member> <!-- Source descriptor set -->
|
||||||
<member><type>uint32_t</type> <name>srcBinding</name></member> <!-- Binding within the source descriptor set to copy from -->
|
<member><type>uint32_t</type> <name>srcBinding</name></member> <!-- Binding within the source descriptor set to copy from -->
|
||||||
@ -658,7 +658,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkBufferCreateInfo">
|
<type category="struct" name="VkBufferCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member validextensionstructs="VkDedicatedAllocationBufferCreateInfoNV">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
<member validextensionstructs="VkDedicatedAllocationBufferCreateInfoNV">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
||||||
<member optional="true"><type>VkBufferCreateFlags</type> <name>flags</name></member> <!-- Buffer creation flags -->
|
<member optional="true"><type>VkBufferCreateFlags</type> <name>flags</name></member> <!-- Buffer creation flags -->
|
||||||
<member><type>VkDeviceSize</type> <name>size</name></member> <!-- Specified in bytes -->
|
<member><type>VkDeviceSize</type> <name>size</name></member> <!-- Specified in bytes -->
|
||||||
@ -677,7 +677,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkBufferViewCreateInfo">
|
<type category="struct" name="VkBufferViewCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
||||||
<member optional="true"><type>VkBufferViewCreateFlags</type><name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkBufferViewCreateFlags</type><name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkBuffer</type> <name>buffer</name></member>
|
<member><type>VkBuffer</type> <name>buffer</name></member>
|
||||||
@ -730,13 +730,13 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkMemoryBarrier">
|
<type category="struct" name="VkMemoryBarrier">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER -->
|
<member values="VK_STRUCTURE_TYPE_MEMORY_BARRIER"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
||||||
<member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name></member> <!-- Memory accesses from the source of the dependency to synchronize -->
|
<member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name></member> <!-- Memory accesses from the source of the dependency to synchronize -->
|
||||||
<member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member> <!-- Memory accesses from the destination of the dependency to synchronize -->
|
<member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member> <!-- Memory accesses from the destination of the dependency to synchronize -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkBufferMemoryBarrier">
|
<type category="struct" name="VkBufferMemoryBarrier">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER -->
|
<member values="VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
||||||
<member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name></member> <!-- Memory accesses from the source of the dependency to synchronize -->
|
<member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name></member> <!-- Memory accesses from the source of the dependency to synchronize -->
|
||||||
<member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member> <!-- Memory accesses from the destination of the dependency to synchronize -->
|
<member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member> <!-- Memory accesses from the destination of the dependency to synchronize -->
|
||||||
@ -755,7 +755,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkImageMemoryBarrier">
|
<type category="struct" name="VkImageMemoryBarrier">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER -->
|
<member values="VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
||||||
<member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name></member> <!-- Memory accesses from the source of the dependency to synchronize -->
|
<member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name></member> <!-- Memory accesses from the source of the dependency to synchronize -->
|
||||||
<member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member> <!-- Memory accesses from the destination of the dependency to synchronize -->
|
<member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member> <!-- Memory accesses from the destination of the dependency to synchronize -->
|
||||||
@ -782,7 +782,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkImageCreateInfo">
|
<type category="struct" name="VkImageCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member validextensionstructs="VkDedicatedAllocationImageCreateInfoNV">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
<member validextensionstructs="VkDedicatedAllocationImageCreateInfoNV">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
||||||
<member optional="true"><type>VkImageCreateFlags</type> <name>flags</name></member> <!-- Image creation flags -->
|
<member optional="true"><type>VkImageCreateFlags</type> <name>flags</name></member> <!-- Image creation flags -->
|
||||||
<member><type>VkImageType</type> <name>imageType</name></member>
|
<member><type>VkImageType</type> <name>imageType</name></member>
|
||||||
@ -850,7 +850,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member><type>VkDeviceSize</type> <name>depthPitch</name></member> <!-- Specified in bytes -->
|
<member><type>VkDeviceSize</type> <name>depthPitch</name></member> <!-- Specified in bytes -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkImageViewCreateInfo">
|
<type category="struct" name="VkImageViewCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkImageViewCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkImageViewCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkImage</type> <name>image</name></member>
|
<member><type>VkImage</type> <name>image</name></member>
|
||||||
@ -877,7 +877,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<usage>pname:subresourceRange must: be a valid image subresource range for pname:image (see <<resources-image-views>>)</usage>
|
<usage>pname:subresourceRange must: be a valid image subresource range for pname:image (see <<resources-image-views>>)</usage>
|
||||||
<usage>If pname:image was created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be compatible with the pname:format used to create pname:image, as defined in <<features-formats-compatibility-classes,Format Compatibility Classes>></usage>
|
<usage>If pname:image was created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be compatible with the pname:format used to create pname:image, as defined in <<features-formats-compatibility-classes,Format Compatibility Classes>></usage>
|
||||||
<usage>If pname:image was not created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be identical to the pname:format used to create pname:image</usage>
|
<usage>If pname:image was not created with the ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be identical to the pname:format used to create pname:image</usage>
|
||||||
<usage>pname:subResourceRange and pname:viewType must: be compatible with the image, as described in the <<resources-image-views-compatibility,table below>></usage>
|
<usage>pname:subResourceRange and pname:viewType must: be compatible with the image, as described in the <<resources-image-views-compatibility,compatibility table>></usage>
|
||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkBufferCopy">
|
<type category="struct" name="VkBufferCopy">
|
||||||
@ -939,7 +939,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member len="bindCount">const <type>VkSparseImageMemoryBind</type>* <name>pBinds</name></member>
|
<member len="bindCount">const <type>VkSparseImageMemoryBind</type>* <name>pBinds</name></member>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkBindSparseInfo">
|
<type category="struct" name="VkBindSparseInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure. -->
|
||||||
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member>
|
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member>
|
||||||
<member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member>
|
<member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member>
|
||||||
@ -1045,7 +1045,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkShaderModuleCreateInfo">
|
<type category="struct" name="VkShaderModuleCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkShaderModuleCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkShaderModuleCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>size_t</type> <name>codeSize</name></member> <!-- Specified in bytes -->
|
<member><type>size_t</type> <name>codeSize</name></member> <!-- Specified in bytes -->
|
||||||
@ -1072,7 +1072,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDescriptorSetLayoutCreateInfo">
|
<type category="struct" name="VkDescriptorSetLayoutCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkDescriptorSetLayoutCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkDescriptorSetLayoutCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member optional="true"><type>uint32_t</type> <name>bindingCount</name></member> <!-- Number of bindings in the descriptor set layout -->
|
<member optional="true"><type>uint32_t</type> <name>bindingCount</name></member> <!-- Number of bindings in the descriptor set layout -->
|
||||||
@ -1086,7 +1086,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDescriptorPoolCreateInfo">
|
<type category="struct" name="VkDescriptorPoolCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkDescriptorPoolCreateFlags</type> <name>flags</name></member>
|
<member optional="true"><type>VkDescriptorPoolCreateFlags</type> <name>flags</name></member>
|
||||||
<member><type>uint32_t</type> <name>maxSets</name></member>
|
<member><type>uint32_t</type> <name>maxSets</name></member>
|
||||||
@ -1097,7 +1097,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDescriptorSetAllocateInfo">
|
<type category="struct" name="VkDescriptorSetAllocateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkDescriptorPool</type> <name>descriptorPool</name></member>
|
<member><type>VkDescriptorPool</type> <name>descriptorPool</name></member>
|
||||||
<member><type>uint32_t</type> <name>descriptorSetCount</name></member>
|
<member><type>uint32_t</type> <name>descriptorSetCount</name></member>
|
||||||
@ -1126,7 +1126,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineShaderStageCreateInfo">
|
<type category="struct" name="VkPipelineShaderStageCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineShaderStageCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineShaderStageCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkShaderStageFlagBits</type> <name>stage</name></member> <!-- Shader stage -->
|
<member><type>VkShaderStageFlagBits</type> <name>stage</name></member> <!-- Shader stage -->
|
||||||
@ -1153,7 +1153,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkComputePipelineCreateInfo">
|
<type category="struct" name="VkComputePipelineCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name></member> <!-- Pipeline creation flags -->
|
<member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name></member> <!-- Pipeline creation flags -->
|
||||||
<member><type>VkPipelineShaderStageCreateInfo</type> <name>stage</name></member>
|
<member><type>VkPipelineShaderStageCreateInfo</type> <name>stage</name></member>
|
||||||
@ -1193,7 +1193,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineVertexInputStateCreateInfo">
|
<type category="struct" name="VkPipelineVertexInputStateCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineVertexInputStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineVertexInputStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member optional="true"><type>uint32_t</type> <name>vertexBindingDescriptionCount</name></member> <!-- number of bindings -->
|
<member optional="true"><type>uint32_t</type> <name>vertexBindingDescriptionCount</name></member> <!-- number of bindings -->
|
||||||
@ -1210,7 +1210,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineInputAssemblyStateCreateInfo">
|
<type category="struct" name="VkPipelineInputAssemblyStateCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_IINPUT_ASSEMBLY_STATE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineInputAssemblyStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineInputAssemblyStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkPrimitiveTopology</type> <name>topology</name></member>
|
<member><type>VkPrimitiveTopology</type> <name>topology</name></member>
|
||||||
@ -1222,7 +1222,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineTessellationStateCreateInfo">
|
<type category="struct" name="VkPipelineTessellationStateCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineTessellationStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineTessellationStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>uint32_t</type> <name>patchControlPoints</name></member>
|
<member><type>uint32_t</type> <name>patchControlPoints</name></member>
|
||||||
@ -1231,7 +1231,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineViewportStateCreateInfo">
|
<type category="struct" name="VkPipelineViewportStateCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineViewportStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineViewportStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>uint32_t</type> <name>viewportCount</name></member>
|
<member><type>uint32_t</type> <name>viewportCount</name></member>
|
||||||
@ -1247,7 +1247,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineRasterizationStateCreateInfo">
|
<type category="struct" name="VkPipelineRasterizationStateCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member validextensionstructs="VkPipelineRasterizationStateRasterizationOrderAMD">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member validextensionstructs="VkPipelineRasterizationStateRasterizationOrderAMD">const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineRasterizationStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineRasterizationStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkBool32</type> <name>depthClampEnable</name></member>
|
<member><type>VkBool32</type> <name>depthClampEnable</name></member>
|
||||||
@ -1266,7 +1266,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineMultisampleStateCreateInfo">
|
<type category="struct" name="VkPipelineMultisampleStateCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineMultisampleStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineMultisampleStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name></member> <!-- Number of samples used for rasterization -->
|
<member><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name></member> <!-- Number of samples used for rasterization -->
|
||||||
@ -1298,7 +1298,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineColorBlendStateCreateInfo">
|
<type category="struct" name="VkPipelineColorBlendStateCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineColorBlendStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineColorBlendStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkBool32</type> <name>logicOpEnable</name></member>
|
<member><type>VkBool32</type> <name>logicOpEnable</name></member>
|
||||||
@ -1313,7 +1313,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineDynamicStateCreateInfo">
|
<type category="struct" name="VkPipelineDynamicStateCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineDynamicStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineDynamicStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>uint32_t</type> <name>dynamicStateCount</name></member>
|
<member><type>uint32_t</type> <name>dynamicStateCount</name></member>
|
||||||
@ -1329,7 +1329,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member><type>uint32_t</type> <name>reference</name></member>
|
<member><type>uint32_t</type> <name>reference</name></member>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineDepthStencilStateCreateInfo">
|
<type category="struct" name="VkPipelineDepthStencilStateCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineDepthStencilStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineDepthStencilStateCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkBool32</type> <name>depthTestEnable</name></member>
|
<member><type>VkBool32</type> <name>depthTestEnable</name></member>
|
||||||
@ -1346,7 +1346,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkGraphicsPipelineCreateInfo">
|
<type category="struct" name="VkGraphicsPipelineCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name></member> <!-- Pipeline creation flags -->
|
<member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name></member> <!-- Pipeline creation flags -->
|
||||||
<member><type>uint32_t</type> <name>stageCount</name></member>
|
<member><type>uint32_t</type> <name>stageCount</name></member>
|
||||||
@ -1408,7 +1408,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineCacheCreateInfo">
|
<type category="struct" name="VkPipelineCacheCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineCacheCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineCacheCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member optional="true"><type>size_t</type> <name>initialDataSize</name></member> <!-- Size of initial data to populate cache, in bytes -->
|
<member optional="true"><type>size_t</type> <name>initialDataSize</name></member> <!-- Size of initial data to populate cache, in bytes -->
|
||||||
@ -1430,7 +1430,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineLayoutCreateInfo">
|
<type category="struct" name="VkPipelineLayoutCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkPipelineLayoutCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkPipelineLayoutCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member optional="true"><type>uint32_t</type> <name>setLayoutCount</name></member> <!-- Number of descriptor sets interfaced by the pipeline -->
|
<member optional="true"><type>uint32_t</type> <name>setLayoutCount</name></member> <!-- Number of descriptor sets interfaced by the pipeline -->
|
||||||
@ -1447,7 +1447,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkSamplerCreateInfo">
|
<type category="struct" name="VkSamplerCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkSamplerCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkSamplerCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkFilter</type> <name>magFilter</name></member> <!-- Filter mode for magnification -->
|
<member><type>VkFilter</type> <name>magFilter</name></member> <!-- Filter mode for magnification -->
|
||||||
@ -1481,7 +1481,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkCommandPoolCreateInfo">
|
<type category="struct" name="VkCommandPoolCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkCommandPoolCreateFlags</type> <name>flags</name></member> <!-- Command pool creation flags -->
|
<member optional="true"><type>VkCommandPoolCreateFlags</type> <name>flags</name></member> <!-- Command pool creation flags -->
|
||||||
<member><type>uint32_t</type> <name>queueFamilyIndex</name></member>
|
<member><type>uint32_t</type> <name>queueFamilyIndex</name></member>
|
||||||
@ -1490,7 +1490,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkCommandBufferAllocateInfo">
|
<type category="struct" name="VkCommandBufferAllocateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkCommandPool</type> <name>commandPool</name></member>
|
<member><type>VkCommandPool</type> <name>commandPool</name></member>
|
||||||
<member><type>VkCommandBufferLevel</type> <name>level</name></member>
|
<member><type>VkCommandBufferLevel</type> <name>level</name></member>
|
||||||
@ -1500,7 +1500,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkCommandBufferInheritanceInfo">
|
<type category="struct" name="VkCommandBufferInheritanceInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true" noautovalidity="true"><type>VkRenderPass</type> <name>renderPass</name></member> <!-- Render pass for secondary command buffers -->
|
<member optional="true" noautovalidity="true"><type>VkRenderPass</type> <name>renderPass</name></member> <!-- Render pass for secondary command buffers -->
|
||||||
<member><type>uint32_t</type> <name>subpass</name></member>
|
<member><type>uint32_t</type> <name>subpass</name></member>
|
||||||
@ -1515,7 +1515,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkCommandBufferBeginInfo">
|
<type category="struct" name="VkCommandBufferBeginInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO -->
|
<member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkCommandBufferUsageFlags</type> <name>flags</name></member> <!-- Command buffer usage flags -->
|
<member optional="true"><type>VkCommandBufferUsageFlags</type> <name>flags</name></member> <!-- Command buffer usage flags -->
|
||||||
<member optional="true" noautovalidity="true">const <type>VkCommandBufferInheritanceInfo</type>* <name>pInheritanceInfo</name></member> <!-- Pointer to inheritance info for secondary command buffers -->
|
<member optional="true" noautovalidity="true">const <type>VkCommandBufferInheritanceInfo</type>* <name>pInheritanceInfo</name></member> <!-- Pointer to inheritance info for secondary command buffers -->
|
||||||
@ -1526,7 +1526,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkRenderPassBeginInfo">
|
<type category="struct" name="VkRenderPassBeginInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO -->
|
<member values="VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkRenderPass</type> <name>renderPass</name></member>
|
<member><type>VkRenderPass</type> <name>renderPass</name></member>
|
||||||
<member><type>VkFramebuffer</type> <name>framebuffer</name></member>
|
<member><type>VkFramebuffer</type> <name>framebuffer</name></member>
|
||||||
@ -1626,7 +1626,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkRenderPassCreateInfo">
|
<type category="struct" name="VkRenderPassCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkRenderPassCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkRenderPassCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
|
<member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
|
||||||
@ -1643,12 +1643,12 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkEventCreateInfo">
|
<type category="struct" name="VkEventCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkEventCreateFlags</type> <name>flags</name></member> <!-- Event creation flags -->
|
<member optional="true"><type>VkEventCreateFlags</type> <name>flags</name></member> <!-- Event creation flags -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkFenceCreateInfo">
|
<type category="struct" name="VkFenceCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkFenceCreateFlags</type> <name>flags</name></member> <!-- Fence creation flags -->
|
<member optional="true"><type>VkFenceCreateFlags</type> <name>flags</name></member> <!-- Fence creation flags -->
|
||||||
</type>
|
</type>
|
||||||
@ -1850,12 +1850,12 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member><type>VkDeviceSize</type> <name>nonCoherentAtomSize</name></member> <!-- minimum size and alignment for non-coherent host-mapped device memory access -->
|
<member><type>VkDeviceSize</type> <name>nonCoherentAtomSize</name></member> <!-- minimum size and alignment for non-coherent host-mapped device memory access -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkSemaphoreCreateInfo">
|
<type category="struct" name="VkSemaphoreCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkSemaphoreCreateFlags</type> <name>flags</name></member> <!-- Semaphore creation flags -->
|
<member optional="true"><type>VkSemaphoreCreateFlags</type> <name>flags</name></member> <!-- Semaphore creation flags -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkQueryPoolCreateInfo">
|
<type category="struct" name="VkQueryPoolCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkQueryPoolCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkQueryPoolCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkQueryType</type> <name>queryType</name></member>
|
<member><type>VkQueryType</type> <name>queryType</name></member>
|
||||||
@ -1867,7 +1867,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkFramebufferCreateInfo">
|
<type category="struct" name="VkFramebufferCreateInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO -->
|
<member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkFramebufferCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkFramebufferCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkRenderPass</type> <name>renderPass</name></member>
|
<member><type>VkRenderPass</type> <name>renderPass</name></member>
|
||||||
@ -1924,7 +1924,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkSubmitInfo">
|
<type category="struct" name="VkSubmitInfo">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO -->
|
<member values="VK_STRUCTURE_TYPE_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member>
|
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member>
|
||||||
<member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member>
|
<member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member>
|
||||||
@ -1971,7 +1971,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member><type>VkDisplayModeParametersKHR</type> <name>parameters</name></member> <!-- The parameters this mode uses. -->
|
<member><type>VkDisplayModeParametersKHR</type> <name>parameters</name></member> <!-- The parameters this mode uses. -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDisplayModeCreateInfoKHR">
|
<type category="struct" name="VkDisplayModeCreateInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkDisplayModeCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkDisplayModeCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkDisplayModeParametersKHR</type> <name>parameters</name></member> <!-- The parameters this mode uses. -->
|
<member><type>VkDisplayModeParametersKHR</type> <name>parameters</name></member> <!-- The parameters this mode uses. -->
|
||||||
@ -1992,7 +1992,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member><type>VkExtent2D</type> <name>maxDstExtent</name></member>
|
<member><type>VkExtent2D</type> <name>maxDstExtent</name></member>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDisplaySurfaceCreateInfoKHR">
|
<type category="struct" name="VkDisplaySurfaceCreateInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkDisplaySurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkDisplaySurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkDisplayModeKHR</type> <name>displayMode</name></member> <!-- The mode to use when displaying this surface -->
|
<member><type>VkDisplayModeKHR</type> <name>displayMode</name></member> <!-- The mode to use when displaying this surface -->
|
||||||
@ -2011,7 +2011,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDisplayPresentInfoKHR">
|
<type category="struct" name="VkDisplayPresentInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkRect2D</type> <name>srcRect</name></member> <!-- Rectangle within the presentable image to read pixel data from when presenting to the display. -->
|
<member><type>VkRect2D</type> <name>srcRect</name></member> <!-- Rectangle within the presentable image to read pixel data from when presenting to the display. -->
|
||||||
<member><type>VkRect2D</type> <name>dstRect</name></member> <!-- Rectangle within the current display mode's visible region to display srcRectangle in. -->
|
<member><type>VkRect2D</type> <name>dstRect</name></member> <!-- Rectangle within the current display mode's visible region to display srcRectangle in. -->
|
||||||
@ -2035,7 +2035,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member optional="true"><type>VkImageUsageFlags</type> <name>supportedUsageFlags</name></member> <!-- Supported image usage flags for the surface -->
|
<member optional="true"><type>VkImageUsageFlags</type> <name>supportedUsageFlags</name></member> <!-- Supported image usage flags for the surface -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkAndroidSurfaceCreateInfoKHR">
|
<type category="struct" name="VkAndroidSurfaceCreateInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkAndroidSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkAndroidSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>ANativeWindow</type>* <name>window</name></member>
|
<member><type>ANativeWindow</type>* <name>window</name></member>
|
||||||
@ -2044,35 +2044,35 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkMirSurfaceCreateInfoKHR">
|
<type category="struct" name="VkMirSurfaceCreateInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkMirSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkMirSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>MirConnection</type>* <name>connection</name></member>
|
<member><type>MirConnection</type>* <name>connection</name></member>
|
||||||
<member><type>MirSurface</type>* <name>mirSurface</name></member>
|
<member><type>MirSurface</type>* <name>mirSurface</name></member>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkWaylandSurfaceCreateInfoKHR">
|
<type category="struct" name="VkWaylandSurfaceCreateInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkWaylandSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkWaylandSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member>struct <type>wl_display</type>* <name>display</name></member>
|
<member>struct <type>wl_display</type>* <name>display</name></member>
|
||||||
<member>struct <type>wl_surface</type>* <name>surface</name></member>
|
<member>struct <type>wl_surface</type>* <name>surface</name></member>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkWin32SurfaceCreateInfoKHR">
|
<type category="struct" name="VkWin32SurfaceCreateInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkWin32SurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkWin32SurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>HINSTANCE</type> <name>hinstance</name></member>
|
<member><type>HINSTANCE</type> <name>hinstance</name></member>
|
||||||
<member><type>HWND</type> <name>hwnd</name></member>
|
<member><type>HWND</type> <name>hwnd</name></member>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkXlibSurfaceCreateInfoKHR">
|
<type category="struct" name="VkXlibSurfaceCreateInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkXlibSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkXlibSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>Display</type>* <name>dpy</name></member>
|
<member><type>Display</type>* <name>dpy</name></member>
|
||||||
<member><type>Window</type> <name>window</name></member>
|
<member><type>Window</type> <name>window</name></member>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkXcbSurfaceCreateInfoKHR">
|
<type category="struct" name="VkXcbSurfaceCreateInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkXcbSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkXcbSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>xcb_connection_t</type>* <name>connection</name></member>
|
<member><type>xcb_connection_t</type>* <name>connection</name></member>
|
||||||
@ -2083,7 +2083,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member><type>VkColorSpaceKHR</type> <name>colorSpace</name></member> <!-- and colorspace for the surface -->
|
<member><type>VkColorSpaceKHR</type> <name>colorSpace</name></member> <!-- and colorspace for the surface -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkSwapchainCreateInfoKHR">
|
<type category="struct" name="VkSwapchainCreateInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkSwapchainCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkSwapchainCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>VkSurfaceKHR</type> <name>surface</name></member> <!-- The swapchain's target surface -->
|
<member><type>VkSurfaceKHR</type> <name>surface</name></member> <!-- The swapchain's target surface -->
|
||||||
@ -2118,7 +2118,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPresentInfoKHR">
|
<type category="struct" name="VkPresentInfoKHR">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR -->
|
<member values="VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member> <!-- Number of semaphores to wait for before presenting -->
|
<member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member> <!-- Number of semaphores to wait for before presenting -->
|
||||||
<member optional="true" len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member> <!-- Semaphores to wait for before presenting -->
|
<member optional="true" len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member> <!-- Semaphores to wait for before presenting -->
|
||||||
@ -2132,26 +2132,26 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDebugReportCallbackCreateInfoEXT">
|
<type category="struct" name="VkDebugReportCallbackCreateInfoEXT">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT -->
|
<member values="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkDebugReportFlagsEXT</type> <name>flags</name></member> <!-- Indicates which events call this callback-->
|
<member><type>VkDebugReportFlagsEXT</type> <name>flags</name></member> <!-- Indicates which events call this callback-->
|
||||||
<member><type>PFN_vkDebugReportCallbackEXT</type> <name>pfnCallback</name></member> <!-- Function pointer of a callback function-->
|
<member><type>PFN_vkDebugReportCallbackEXT</type> <name>pfnCallback</name></member> <!-- Function pointer of a callback function-->
|
||||||
<member optional="true"><type>void</type>* <name>pUserData</name></member> <!-- User data provided to callback function -->
|
<member optional="true"><type>void</type>* <name>pUserData</name></member> <!-- User data provided to callback function -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineRasterizationStateRasterizationOrderAMD">
|
<type category="struct" name="VkPipelineRasterizationStateRasterizationOrderAMD">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD -->
|
<member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkRasterizationOrderAMD</type> <name>rasterizationOrder</name></member> <!-- Rasterization order to use for the pipeline -->
|
<member><type>VkRasterizationOrderAMD</type> <name>rasterizationOrder</name></member> <!-- Rasterization order to use for the pipeline -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDebugMarkerObjectNameInfoEXT">
|
<type category="struct" name="VkDebugMarkerObjectNameInfoEXT">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT -->
|
<member values="VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkDebugReportObjectTypeEXT</type> <name>objectType</name></member> <!-- The type of the object -->
|
<member><type>VkDebugReportObjectTypeEXT</type> <name>objectType</name></member> <!-- The type of the object -->
|
||||||
<member><type>uint64_t</type> <name>object</name></member> <!-- The handle of the object, cast to uint64_t -->
|
<member><type>uint64_t</type> <name>object</name></member> <!-- The handle of the object, cast to uint64_t -->
|
||||||
<member len="null-terminated">const <type>char</type>* <name>pObjectName</name></member> <!-- Name to apply to the object -->
|
<member len="null-terminated">const <type>char</type>* <name>pObjectName</name></member> <!-- Name to apply to the object -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDebugMarkerObjectTagInfoEXT">
|
<type category="struct" name="VkDebugMarkerObjectTagInfoEXT">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT -->
|
<member values="VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkDebugReportObjectTypeEXT</type> <name>objectType</name></member> <!-- The type of the object -->
|
<member><type>VkDebugReportObjectTypeEXT</type> <name>objectType</name></member> <!-- The type of the object -->
|
||||||
<member><type>uint64_t</type> <name>object</name></member> <!-- The handle of the object, cast to uint64_t -->
|
<member><type>uint64_t</type> <name>object</name></member> <!-- The handle of the object, cast to uint64_t -->
|
||||||
@ -2160,13 +2160,13 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<member len="tagSize">const <type>void</type>* <name>pTag</name></member> <!-- Tag data to attach to the object -->
|
<member len="tagSize">const <type>void</type>* <name>pTag</name></member> <!-- Tag data to attach to the object -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDebugMarkerMarkerInfoEXT">
|
<type category="struct" name="VkDebugMarkerMarkerInfoEXT">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT -->
|
<member values="VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member len="null-terminated">const <type>char</type>* <name>pMarkerName</name></member> <!-- Name of the debug marker -->
|
<member len="null-terminated">const <type>char</type>* <name>pMarkerName</name></member> <!-- Name of the debug marker -->
|
||||||
<member optional="true"><type>float</type> <name>color</name>[4]</member> <!-- Optional color for debug marker -->
|
<member optional="true"><type>float</type> <name>color</name>[4]</member> <!-- Optional color for debug marker -->
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDedicatedAllocationImageCreateInfoNV">
|
<type category="struct" name="VkDedicatedAllocationImageCreateInfoNV">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV -->
|
<member values="VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkBool32</type> <name>dedicatedAllocation</name></member> <!-- Whether this image uses a dedicated allocation -->
|
<member><type>VkBool32</type> <name>dedicatedAllocation</name></member> <!-- Whether this image uses a dedicated allocation -->
|
||||||
<validity>
|
<validity>
|
||||||
@ -2174,7 +2174,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDedicatedAllocationBufferCreateInfoNV">
|
<type category="struct" name="VkDedicatedAllocationBufferCreateInfoNV">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV -->
|
<member values="VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member><type>VkBool32</type> <name>dedicatedAllocation</name></member> <!-- Whether this buffer uses a dedicated allocation -->
|
<member><type>VkBool32</type> <name>dedicatedAllocation</name></member> <!-- Whether this buffer uses a dedicated allocation -->
|
||||||
<validity>
|
<validity>
|
||||||
@ -2182,7 +2182,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDedicatedAllocationMemoryAllocateInfoNV">
|
<type category="struct" name="VkDedicatedAllocationMemoryAllocateInfoNV">
|
||||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV -->
|
<member values="VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
|
||||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkImage</type> <name>image</name></member> <!-- Image that this allocation will be bound to -->
|
<member optional="true"><type>VkImage</type> <name>image</name></member> <!-- Image that this allocation will be bound to -->
|
||||||
<member optional="true"><type>VkBuffer</type> <name>buffer</name></member> <!-- Buffer that this allocation will be bound to -->
|
<member optional="true"><type>VkBuffer</type> <name>buffer</name></member> <!-- Buffer that this allocation will be bound to -->
|
||||||
@ -3032,17 +3032,11 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<proto><type>PFN_vkVoidFunction</type> <name>vkGetDeviceProcAddr</name></proto>
|
<proto><type>PFN_vkVoidFunction</type> <name>vkGetDeviceProcAddr</name></proto>
|
||||||
<param><type>VkDevice</type> <name>device</name></param>
|
<param><type>VkDevice</type> <name>device</name></param>
|
||||||
<param len="null-terminated">const <type>char</type>* <name>pName</name></param>
|
<param len="null-terminated">const <type>char</type>* <name>pName</name></param>
|
||||||
<validity>
|
|
||||||
</validity>
|
|
||||||
</command>
|
</command>
|
||||||
<command>
|
<command>
|
||||||
<proto><type>PFN_vkVoidFunction</type> <name>vkGetInstanceProcAddr</name></proto>
|
<proto><type>PFN_vkVoidFunction</type> <name>vkGetInstanceProcAddr</name></proto>
|
||||||
<param optional="true"><type>VkInstance</type> <name>instance</name></param>
|
<param optional="true"><type>VkInstance</type> <name>instance</name></param>
|
||||||
<param len="null-terminated">const <type>char</type>* <name>pName</name></param>
|
<param len="null-terminated">const <type>char</type>* <name>pName</name></param>
|
||||||
<validity>
|
|
||||||
<usage>If pname:instance is `NULL`, pname:pName must: be "vkEnumerateInstanceExtensionProperties", "vkEnumerateInstanceLayerProperties", or "vkCreateInstance"</usage>
|
|
||||||
<usage>If pname:instance is not `NULL`, pname:pName mustnot: be "vkEnumerateInstanceExtensionProperties", "vkEnumerateInstanceLayerProperties", or "vkCreateInstance"</usage>
|
|
||||||
</validity>
|
|
||||||
</command>
|
</command>
|
||||||
<command>
|
<command>
|
||||||
<proto><type>void</type> <name>vkGetPhysicalDeviceProperties</name></proto>
|
<proto><type>void</type> <name>vkGetPhysicalDeviceProperties</name></proto>
|
||||||
@ -3114,7 +3108,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
</command>
|
</command>
|
||||||
<command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
|
<command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
|
||||||
<proto><type>VkResult</type> <name>vkEnumerateDeviceLayerProperties</name></proto>
|
<proto><type>VkResult</type> <name>vkEnumerateDeviceLayerProperties</name></proto>
|
||||||
<param optional="false,true"><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
|
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
|
||||||
<param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
|
<param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
|
||||||
<param optional="true" len="pPropertyCount"><type>VkLayerProperties</type>* <name>pProperties</name></param>
|
<param optional="true" len="pPropertyCount"><type>VkLayerProperties</type>* <name>pProperties</name></param>
|
||||||
</command>
|
</command>
|
||||||
@ -3953,6 +3947,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<validity>
|
<validity>
|
||||||
<usage>Any given element of pname:pDescriptorSets must: have been created with a sname:VkDescriptorSetLayout that matches (is the same as, or defined identically to) the sname:VkDescriptorSetLayout at set _n_ in pname:layout, where _n_ is the sum of pname:firstSet and the index into pname:pDescriptorSets</usage>
|
<usage>Any given element of pname:pDescriptorSets must: have been created with a sname:VkDescriptorSetLayout that matches (is the same as, or defined identically to) the sname:VkDescriptorSetLayout at set _n_ in pname:layout, where _n_ is the sum of pname:firstSet and the index into pname:pDescriptorSets</usage>
|
||||||
<usage>pname:dynamicOffsetCount must: be equal to the total number of dynamic descriptors in pname:pDescriptorSets</usage>
|
<usage>pname:dynamicOffsetCount must: be equal to the total number of dynamic descriptors in pname:pDescriptorSets</usage>
|
||||||
|
<usage>The sum of pname:firstSet and pname:descriptorSetCount must: be less than or equal to sname:VkPipelineLayoutCreateInfo::pname:setLayoutCount provided when pname:layout was created</usage>
|
||||||
<usage>pname:pipelineBindPoint must: be supported by the pname:commandBuffer's parent sname:VkCommandPool's queue family</usage>
|
<usage>pname:pipelineBindPoint must: be supported by the pname:commandBuffer's parent sname:VkCommandPool's queue family</usage>
|
||||||
<usage>Any given element of pname:pDynamicOffsets must: satisfy the required alignment for the corresponding descriptor binding's descriptor type</usage>
|
<usage>Any given element of pname:pDynamicOffsets must: satisfy the required alignment for the corresponding descriptor binding's descriptor type</usage>
|
||||||
</validity>
|
</validity>
|
||||||
@ -4547,6 +4542,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<usage>Any given element of pname:pCommandBuffers mustnot: be already pending execution in pname:commandBuffer, or appear twice in pname:pCommandBuffers, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag</usage>
|
<usage>Any given element of pname:pCommandBuffers mustnot: be already pending execution in pname:commandBuffer, or appear twice in pname:pCommandBuffers, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag</usage>
|
||||||
<usage>Any given element of pname:pCommandBuffers mustnot: be already pending execution in any other sname:VkCommandBuffer, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag</usage>
|
<usage>Any given element of pname:pCommandBuffers mustnot: be already pending execution in any other sname:VkCommandBuffer, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag</usage>
|
||||||
<usage>Any given element of pname:pCommandBuffers must: be in the executable state</usage>
|
<usage>Any given element of pname:pCommandBuffers must: be in the executable state</usage>
|
||||||
|
<usage>Any given element of pname:pCommandBuffers must: have been allocated from a sname:VkCommandPool that was created for the same queue family as the sname:VkCommandPool from which pname:commandBuffer was allocated</usage>
|
||||||
<usage>If fname:vkCmdExecuteCommands is being called within a render pass instance, that render pass instance must: have been begun with the pname:contents parameter of fname:vkCmdBeginRenderPass set to ename:VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS</usage>
|
<usage>If fname:vkCmdExecuteCommands is being called within a render pass instance, that render pass instance must: have been begun with the pname:contents parameter of fname:vkCmdBeginRenderPass set to ename:VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS</usage>
|
||||||
<usage>If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</usage>
|
<usage>If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</usage>
|
||||||
<usage>If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with sname:VkCommandBufferInheritanceInfo::pname:subpass set to the index of the subpass which the given command buffer will be executed in</usage>
|
<usage>If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with sname:VkCommandBufferInheritanceInfo::pname:subpass set to the index of the subpass which the given command buffer will be executed in</usage>
|
||||||
@ -4595,7 +4591,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
|
<param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
|
||||||
<param optional="true" len="pPropertyCount"><type>VkDisplayModePropertiesKHR</type>* <name>pProperties</name></param>
|
<param optional="true" len="pPropertyCount"><type>VkDisplayModePropertiesKHR</type>* <name>pProperties</name></param>
|
||||||
</command>
|
</command>
|
||||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
|
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
|
||||||
<proto><type>VkResult</type> <name>vkCreateDisplayModeKHR</name></proto>
|
<proto><type>VkResult</type> <name>vkCreateDisplayModeKHR</name></proto>
|
||||||
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
|
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
|
||||||
<param externsync="true"><type>VkDisplayKHR</type> <name>display</name></param>
|
<param externsync="true"><type>VkDisplayKHR</type> <name>display</name></param>
|
||||||
@ -5540,5 +5536,11 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
|||||||
<enum value=""VK_NV_extension_53"" name="VK_NV_EXTENSION_53_EXTENSION_NAME"/>
|
<enum value=""VK_NV_extension_53"" name="VK_NV_EXTENSION_53_EXTENSION_NAME"/>
|
||||||
</require>
|
</require>
|
||||||
</extension>
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_54" number="54" author="NVIDIA" contact="Jeff Bolz @jbolz" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_54_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_54"" name="VK_NV_EXTENSION_54_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
</extensions>
|
</extensions>
|
||||||
</registry>
|
</registry>
|
||||||
|
@ -43,7 +43,7 @@ extern "C" {
|
|||||||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||||
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
||||||
// Version of this file
|
// Version of this file
|
||||||
#define VK_HEADER_VERSION 22
|
#define VK_HEADER_VERSION 23
|
||||||
|
|
||||||
|
|
||||||
#define VK_NULL_HANDLE 0
|
#define VK_NULL_HANDLE 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user