Change log for December 10, 2016 Vulkan 1.0.37 spec update:
* Bump API patch number and header version number to 37 for this update. Github Issues: * Add usability guarantees on the values returned by flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR in the slink:VkSurfaceCapabilitiesKHR structure and by flink:vkGetPhysicalDeviceSurfaceFormatsKHR in the pname:pSurfaceFormatCount parameter (public issue 385). * Add elink:VkDebugReportObjectTypeEXT enumerants for new object types introduced by new extensions (public issue 408). * Add +VK_NVX_device_generated_commands+ etext:ACCESS bits and define how they are used (public issue 415). * Fix indentation for slink:VkDebugReportCallbackCreateInfoEXT member descriptions (public issue 419). Internal Issues: * Expand requirements memory binding of non-sparse images and buffers from the <<resources-association,Resource Memory Association>> section into valid usage statements for all of the applicable API calls (internal issue 508). * Explicitly state that valid usage of flink:vkCreateImage requires that flink:vkGetPhysicalDeviceImageFormatProperties would return ename:VK_SUCCESS for the requested image configuration (internal issue 598).
This commit is contained in:
parent
7cba8f5d99
commit
8f014fa579
|
@ -1680,8 +1680,8 @@ Github Issues:
|
||||||
* Added validation language for slink:VkSubpassDependency and in the
|
* Added validation language for slink:VkSubpassDependency and in the
|
||||||
<<synchronization-access-types-supported,supported access types>>
|
<<synchronization-access-types-supported,supported access types>>
|
||||||
section to catch access masks that include bits which are not supported
|
section to catch access masks that include bits which are not supported
|
||||||
by pipeline stages in the stage masks (partially addresses public issue
|
by pipeline stages in the stage masks (partially addresses
|
||||||
1006).
|
github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/1006 ).
|
||||||
|
|
||||||
Internal Issues:
|
Internal Issues:
|
||||||
|
|
||||||
|
@ -1707,3 +1707,34 @@ Other Issues:
|
||||||
* Add validity language requiring that
|
* Add validity language requiring that
|
||||||
slink:VkPushConstantRange::pname:offset be a multiple of 4, as stated in
|
slink:VkPushConstantRange::pname:offset be a multiple of 4, as stated in
|
||||||
the spec language.
|
the spec language.
|
||||||
|
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
Change log for December 10, 2016 Vulkan 1.0.37 spec update:
|
||||||
|
|
||||||
|
* Bump API patch number and header version number to 37 for this update.
|
||||||
|
|
||||||
|
Github Issues:
|
||||||
|
|
||||||
|
* Add usability guarantees on the values returned by
|
||||||
|
flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR in the
|
||||||
|
slink:VkSurfaceCapabilitiesKHR structure and by
|
||||||
|
flink:vkGetPhysicalDeviceSurfaceFormatsKHR in the
|
||||||
|
pname:pSurfaceFormatCount parameter (public issue 385).
|
||||||
|
* Add elink:VkDebugReportObjectTypeEXT enumerants for new object types
|
||||||
|
introduced by new extensions (public issue 408).
|
||||||
|
* Add +VK_NVX_device_generated_commands+ etext:ACCESS bits and define how
|
||||||
|
they are used (public issue 415).
|
||||||
|
* Fix indentation for slink:VkDebugReportCallbackCreateInfoEXT member
|
||||||
|
descriptions (public issue 419).
|
||||||
|
|
||||||
|
Internal Issues:
|
||||||
|
|
||||||
|
* Expand requirements memory binding of non-sparse images and buffers from
|
||||||
|
the <<resources-association,Resource Memory Association>> section into
|
||||||
|
valid usage statements for all of the applicable API calls (internal
|
||||||
|
issue 508).
|
||||||
|
* Explicitly state that valid usage of flink:vkCreateImage requires that
|
||||||
|
flink:vkGetPhysicalDeviceImageFormatProperties would return
|
||||||
|
ename:VK_SUCCESS for the requested image configuration (internal issue
|
||||||
|
598).
|
||||||
|
|
|
@ -160,7 +160,7 @@ GENDEPENDS = api/timeMarker validity/timeMarker hostsynctable/timeMarker
|
||||||
COMMONDOCS = $(CHAPTERS) $(GENINCLUDE) $(GENDEPENDS)
|
COMMONDOCS = $(CHAPTERS) $(GENINCLUDE) $(GENDEPENDS)
|
||||||
# A generated included file containing the spec version, date, and git commit
|
# A generated included file containing the spec version, date, and git commit
|
||||||
SPECVERSION = specversion.txt
|
SPECVERSION = specversion.txt
|
||||||
SPECREVISION = 1.0.36
|
SPECREVISION = 1.0.37
|
||||||
SPECREMARK =
|
SPECREMARK =
|
||||||
|
|
||||||
# Spec targets
|
# Spec targets
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
*Registered Extension Number*::
|
*Registered Extension Number*::
|
||||||
12
|
12
|
||||||
*Last Modified Date*::
|
*Last Modified Date*::
|
||||||
2016-09-17
|
2016-12-08
|
||||||
*Revision*::
|
*Revision*::
|
||||||
3
|
4
|
||||||
*IP Status*::
|
*IP Status*::
|
||||||
No known IP claims.
|
No known IP claims.
|
||||||
*Dependencies*::
|
*Dependencies*::
|
||||||
|
@ -19,6 +19,7 @@
|
||||||
- Courtney Goeltzenleuchter, LunarG
|
- Courtney Goeltzenleuchter, LunarG
|
||||||
- Dan Ginsburg, Valve
|
- Dan Ginsburg, Valve
|
||||||
- Jon Ashburn, LunarG
|
- Jon Ashburn, LunarG
|
||||||
|
- Mark Lobodzinski, LunarG
|
||||||
*Contacts*::
|
*Contacts*::
|
||||||
- Courtney Goeltzenleuchter
|
- Courtney Goeltzenleuchter
|
||||||
|
|
||||||
|
@ -152,9 +153,18 @@ We should probably add some.
|
||||||
|
|
||||||
=== Version History
|
=== Version History
|
||||||
|
|
||||||
[NOTE]
|
* Revision 1, 2015-05-20 (Courtney Goetzenleuchter)
|
||||||
.Note
|
- Initial draft, based on LunarG KHR spec, other KHR specs
|
||||||
====
|
|
||||||
There is no revision history in the current spec.
|
* Revision 2, 2016-02-16 (Courtney Goetzenleuchter)
|
||||||
We should probably add some.
|
- Update usage, documentation
|
||||||
====
|
|
||||||
|
* Revision 3, 2016-06-14 (Courtney Goetzenleuchter)
|
||||||
|
- Update VK_EXT_DEBUG_REPORT_SPEC_VERSION to indicate added support for
|
||||||
|
vkCreateInstance and vkDestroyInstance
|
||||||
|
|
||||||
|
* Revision 4, 2016-12-08 (Mark Lobodzinski)
|
||||||
|
- Added Display_KHR, DisplayModeKHR extension objects
|
||||||
|
- Added ObjectTable_NVX, IndirectCommandsLayout_NVX extension objects
|
||||||
|
- Bumped spec revision
|
||||||
|
- Retroactively added version history
|
||||||
|
|
|
@ -95,7 +95,7 @@ shaders...).
|
||||||
* sname:VkObjectTableNVX
|
* sname:VkObjectTableNVX
|
||||||
* sname:VkIndirectCommandsLayoutNVX
|
* sname:VkIndirectCommandsLayoutNVX
|
||||||
|
|
||||||
== New Flag Types
|
=== New Flag Types
|
||||||
|
|
||||||
* sname:VkIndirectCommandsLayoutUsageFlagsNVX
|
* sname:VkIndirectCommandsLayoutUsageFlagsNVX
|
||||||
* sname:VkObjectEntryUsageFlagsNVX
|
* sname:VkObjectEntryUsageFlagsNVX
|
||||||
|
@ -313,11 +313,35 @@ vkCmdProcessCommandsNVX
|
||||||
22) In which pipeline stage do the device generated command expansion
|
22) In which pipeline stage do the device generated command expansion
|
||||||
happen?
|
happen?
|
||||||
|
|
||||||
This is required in order to allow applications to properly syncronize
|
vkCmdProcessCommandsNVX is treated as if it occurs in a separate logical
|
||||||
access (e.g. via memory barriers) when writing to the buffers referenced
|
pipeline from either graphics or compute, and that pipeline only includes
|
||||||
by vkCmdProcessCommandsNVX
|
TOP_OF_PIPE, a new stage ename:VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT, and
|
||||||
|
BOTTOM_OF_PIPE.
|
||||||
|
This new stage has two corresponding new access types,
|
||||||
|
ename:VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX and
|
||||||
|
ename:VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX, used to synchronize reading
|
||||||
|
the buffer inputs and writing the command buffer memory output.
|
||||||
|
The output written in the target command buffer is considered to be
|
||||||
|
consumed by the DRAW_INDIRECT pipeline stage.
|
||||||
|
|
||||||
added VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT
|
Thus, to synchronize from writing the input buffers to executing
|
||||||
|
flink:vkCmdProcessCommandsNVX, use:
|
||||||
|
|
||||||
|
* dstStageMask = VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX
|
||||||
|
* dstAccessMask = VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX
|
||||||
|
|
||||||
|
To synchronize from executing flink:vkCmdProcessCommandsNVX to executing
|
||||||
|
the generated commands, use
|
||||||
|
|
||||||
|
* srcStageMask = VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX
|
||||||
|
* srcAccessMask = VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX
|
||||||
|
* dstStageMask = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
|
||||||
|
* dstAccessMask = VK_ACCESS_INDIRECT_COMMAND_READ_BIT
|
||||||
|
|
||||||
|
When flink:vkCmdProcessCommandsNVX is used with a
|
||||||
|
pname:targetCommandBuffer of `NULL`, the generated commands are
|
||||||
|
immediately executed and there is implicit synchronization between
|
||||||
|
generation and execution.
|
||||||
|
|
||||||
23) What if most token data is "static", but we frequently want to render a
|
23) What if most token data is "static", but we frequently want to render a
|
||||||
subsection?
|
subsection?
|
||||||
|
@ -360,13 +384,34 @@ TODO links to gameworks & designworks samples
|
||||||
// If you modify the input buffer data referenced by VkCmdProcessCommandsInfoNVX,
|
// If you modify the input buffer data referenced by VkCmdProcessCommandsInfoNVX,
|
||||||
// ensure you have added the appropriate barriers prior generation process.
|
// ensure you have added the appropriate barriers prior generation process.
|
||||||
// When regenerating the content of the same reserved space, ensure prior operations have completed
|
// When regenerating the content of the same reserved space, ensure prior operations have completed
|
||||||
vkCmdPipelineBarrier (mainCmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX, ...);
|
|
||||||
|
VkMemoryBarrier memoryBarrier = { VK_STRUCTURE_TYPE_MEMORY_BARRIER };
|
||||||
|
memoryBarrier.srcAccessMask = ...;
|
||||||
|
memoryBarrier.dstAccessMask = VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX;
|
||||||
|
|
||||||
|
vkCmdPipelineBarrier(mainCmd,
|
||||||
|
/*srcStageMask*/VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
|
||||||
|
/*dstStageMask*/VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX,
|
||||||
|
/*dependencyFlags*/0,
|
||||||
|
/*memoryBarrierCount*/1,
|
||||||
|
/*pMemoryBarriers*/&memoryBarrier,
|
||||||
|
...);
|
||||||
|
|
||||||
vkCmdProcessCommandsNVX(mainCmd, &processInfo);
|
vkCmdProcessCommandsNVX(mainCmd, &processInfo);
|
||||||
...
|
...
|
||||||
// execute the secondary command buffer and ensure the processing that modifies command-buffer content
|
// execute the secondary command buffer and ensure the processing that modifies command-buffer content
|
||||||
// has completed
|
// has completed
|
||||||
vkCmdPipelineBarrier(mainCmd, VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, ...)
|
|
||||||
|
memoryBarrier.srcAccessMask = VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX;
|
||||||
|
memoryBarrier.dstAccessMask = VK_ACCESS_INDIRECT_COMMAND_READ_BIT;
|
||||||
|
|
||||||
|
vkCmdPipelineBarrier(mainCmd,
|
||||||
|
/*srcStageMask*/VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX,
|
||||||
|
/*dstStageMask*/VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
|
||||||
|
/*dependencyFlags*/0,
|
||||||
|
/*memoryBarrierCount*/1,
|
||||||
|
/*pMemoryBarriers*/&memoryBarrier,
|
||||||
|
...)
|
||||||
vkCmdExecuteCommands(mainCmd, 1, &generatedCmdBuffer);
|
vkCmdExecuteCommands(mainCmd, 1, &generatedCmdBuffer);
|
||||||
|
|
||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
|
|
|
@ -54,10 +54,14 @@ include::../api/enums/VkDebugReportFlagBitsEXT.txt[]
|
||||||
|
|
||||||
* ename:VK_DEBUG_REPORT_ERROR_BIT_EXT indicates an error that may cause
|
* ename:VK_DEBUG_REPORT_ERROR_BIT_EXT indicates an error that may cause
|
||||||
undefined results, including an application crash.
|
undefined results, including an application crash.
|
||||||
* ename:VK_DEBUG_REPORT_WARNING_BIT_EXT indicates an unexpected use.
|
* ename:VK_DEBUG_REPORT_WARNING_BIT_EXT indicates use of Vulkan that may
|
||||||
E.g. Not destroying objects prior to destroying the containing object or
|
expose an app bug.
|
||||||
potential inconsistencies between descriptor set layout and the layout
|
Such cases may not be immediately harmful, such as a fragment shader
|
||||||
in the corresponding shader, etc.
|
outputting to a location with no attachment.
|
||||||
|
Other cases may point to behavior that is almost certainly bad when
|
||||||
|
unintended such as using an image whose memory hasn't been filled.
|
||||||
|
In general if you see a warning but you know that the behavior is
|
||||||
|
intended/desired, then simply ignore the warning.
|
||||||
* ename:VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT indicates a
|
* ename:VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT indicates a
|
||||||
potentially non-optimal use of Vulkan.
|
potentially non-optimal use of Vulkan.
|
||||||
E.g. using flink:vkCmdClearColorImage when a RenderPass load_op would
|
E.g. using flink:vkCmdClearColorImage when a RenderPass load_op would
|
||||||
|
@ -67,10 +71,10 @@ include::../api/enums/VkDebugReportFlagBitsEXT.txt[]
|
||||||
application.
|
application.
|
||||||
* ename:VK_DEBUG_REPORT_DEBUG_BIT_EXT indicates diagnostic information
|
* ename:VK_DEBUG_REPORT_DEBUG_BIT_EXT indicates diagnostic information
|
||||||
from the loader and layers.
|
from the loader and layers.
|
||||||
|
--
|
||||||
|
+
|
||||||
* pname:pfnCallback is the application callback function to call.
|
* pname:pfnCallback is the application callback function to call.
|
||||||
* pname:pUserData is user data to be passed to the callback.
|
* pname:pUserData is user data to be passed to the callback.
|
||||||
--
|
|
||||||
|
|
||||||
For each sname:VkDebugReportCallbackEXT that is created the flags determine
|
For each sname:VkDebugReportCallbackEXT that is created the flags determine
|
||||||
when that function is called.
|
when that function is called.
|
||||||
|
|
|
@ -232,9 +232,11 @@ The sname:VkSurfaceCapabilitiesKHR structure is defined as:
|
||||||
include::../../api/structs/VkSurfaceCapabilitiesKHR.txt[]
|
include::../../api/structs/VkSurfaceCapabilitiesKHR.txt[]
|
||||||
|
|
||||||
* pname:minImageCount is the minimum number of images the specified device
|
* pname:minImageCount is the minimum number of images the specified device
|
||||||
supports for a swapchain created for the surface.
|
supports for a swapchain created for the surface, and will be at least
|
||||||
|
one.
|
||||||
* pname:maxImageCount is the maximum number of images the specified device
|
* pname:maxImageCount is the maximum number of images the specified device
|
||||||
supports for a swapchain created for the surface.
|
supports for a swapchain created for the surface, and will be either 0,
|
||||||
|
or greater than or equal to pname:minImageCount.
|
||||||
A value of 0 means that there is no limit on the number of images,
|
A value of 0 means that there is no limit on the number of images,
|
||||||
though there may: be limits related to the total amount of memory used
|
though there may: be limits related to the total amount of memory used
|
||||||
by swapchain images.
|
by swapchain images.
|
||||||
|
@ -244,20 +246,33 @@ include::../../api/structs/VkSurfaceCapabilitiesKHR.txt[]
|
||||||
the surface.
|
the surface.
|
||||||
* pname:minImageExtent contains the smallest valid swapchain extent for
|
* pname:minImageExtent contains the smallest valid swapchain extent for
|
||||||
the surface on the specified device.
|
the surface on the specified device.
|
||||||
|
The pname:width and pname:height of the extent will each be less than or
|
||||||
|
equal to the corresponding pname:width and pname:height of
|
||||||
|
pname:currentExtent, unless pname:currentExtent has the special value
|
||||||
|
described above.
|
||||||
* pname:maxImageExtent contains the largest valid swapchain extent for the
|
* pname:maxImageExtent contains the largest valid swapchain extent for the
|
||||||
surface on the specified device.
|
surface on the specified device.
|
||||||
|
The pname:width and pname:height of the extent will each be greater than
|
||||||
|
or equal to the corresponding pname:width and pname:height of
|
||||||
|
pname:minImageExtent.
|
||||||
|
The pname:width and pname:height of the extent will each be greater than
|
||||||
|
or equal to the corresponding pname:width and pname:height of
|
||||||
|
pname:currentExtent, unless pname:currentExtent has the special value
|
||||||
|
described above.
|
||||||
* pname:maxImageArrayLayers is the maximum number of layers swapchain
|
* pname:maxImageArrayLayers is the maximum number of layers swapchain
|
||||||
images can: have for a swapchain created for this device and surface.
|
images can: have for a swapchain created for this device and surface,
|
||||||
|
and will be at least one.
|
||||||
* pname:supportedTransforms is a bitmask of
|
* pname:supportedTransforms is a bitmask of
|
||||||
elink:VkSurfaceTransformFlagBitsKHR, describing the presentation
|
elink:VkSurfaceTransformFlagBitsKHR, describing the presentation
|
||||||
transforms supported for the surface on the specified device.
|
transforms supported for the surface on the specified device, and at
|
||||||
* pname:currentTransform is a bitmask of
|
least one bit will be set.
|
||||||
elink:VkSurfaceTransformFlagBitsKHR, describing the surface's current
|
* pname:currentTransform is the surface's current transform relative to
|
||||||
transform relative to the presentation engine's natural orientation.
|
the presentation engine's natural orientation, as described by
|
||||||
|
elink:VkSurfaceTransformFlagBitsKHR.
|
||||||
* pname:supportedCompositeAlpha is a bitmask of
|
* pname:supportedCompositeAlpha is a bitmask of
|
||||||
elink:VkCompositeAlphaFlagBitsKHR, representing the alpha compositing
|
elink:VkCompositeAlphaFlagBitsKHR, representing the alpha compositing
|
||||||
modes supported by the presentation engine for the surface on the
|
modes supported by the presentation engine for the surface on the
|
||||||
specified device.
|
specified device, and at least one bit will be set.
|
||||||
Opaque composition can: be achieved in any alpha compositing mode by
|
Opaque composition can: be achieved in any alpha compositing mode by
|
||||||
either using a swapchain image format that has no alpha component, or by
|
either using a swapchain image format that has no alpha component, or by
|
||||||
ensuring that all pixels in the swapchain images have an alpha value of
|
ensuring that all pixels in the swapchain images have an alpha value of
|
||||||
|
@ -279,8 +294,10 @@ include::../../validity/structs/VkSurfaceCapabilitiesKHR.txt[]
|
||||||
|
|
||||||
// refBegin VkSurfaceTransformFlagBitsKHR - presentation transforms supported on a device
|
// refBegin VkSurfaceTransformFlagBitsKHR - presentation transforms supported on a device
|
||||||
|
|
||||||
The pname:supportedTransforms and pname:currentTransform members are of type
|
slink:VkSurfaceCapabilitiesKHR::pname:supportedTransforms is a bitmask of,
|
||||||
ename:VkSurfaceTransformFlagBitsKHR, which contains the following values:
|
and slink:VkSurfaceCapabilitiesKHR::pname:currentTransform is a single bit
|
||||||
|
from ename:VkSurfaceTransformFlagBitsKHR, which contains the following
|
||||||
|
values:
|
||||||
|
|
||||||
include::../../api/enums/VkSurfaceTransformFlagBitsKHR.txt[]
|
include::../../api/enums/VkSurfaceTransformFlagBitsKHR.txt[]
|
||||||
|
|
||||||
|
@ -362,6 +379,7 @@ include::../../api/protos/vkGetPhysicalDeviceSurfaceFormatsKHR.txt[]
|
||||||
If pname:pSurfaceFormats is `NULL`, then the number of format pairs
|
If pname:pSurfaceFormats is `NULL`, then the number of format pairs
|
||||||
supported for the given pname:surface is returned in
|
supported for the given pname:surface is returned in
|
||||||
pname:pSurfaceFormatCount.
|
pname:pSurfaceFormatCount.
|
||||||
|
The number of format pairs supported will be greater than or equal to 1.
|
||||||
Otherwise, pname:pSurfaceFormatCount must: point to a variable set by the
|
Otherwise, pname:pSurfaceFormatCount must: point to a variable set by the
|
||||||
user to the number of elements in the pname:pSurfaceFormats array, and on
|
user to the number of elements in the pname:pSurfaceFormats array, and on
|
||||||
return the variable is overwritten with the number of structures actually
|
return the variable is overwritten with the number of structures actually
|
||||||
|
|
|
@ -43,7 +43,7 @@ include::../../api/structs/VkWaylandSurfaceCreateInfoKHR.txt[]
|
||||||
|
|
||||||
include::../../validity/structs/VkWaylandSurfaceCreateInfoKHR.txt[]
|
include::../../validity/structs/VkWaylandSurfaceCreateInfoKHR.txt[]
|
||||||
|
|
||||||
On Wayland, pname:currentExtent is undefined [eq]#(0,0)#.
|
On Wayland, pname:currentExtent is undefined [eq]#(0xFFFFFFFF, 0xFFFFFFFF)#.
|
||||||
Whatever the application sets a swapchain's pname:imageExtent to will be the
|
Whatever the application sets a swapchain's pname:imageExtent to will be the
|
||||||
size of the window, after the first image is presented.
|
size of the window, after the first image is presented.
|
||||||
pname:minImageExtent is [eq]#(1,1)#, and pname:maxImageExtent is the maximum
|
pname:minImageExtent is [eq]#(1,1)#, and pname:maxImageExtent is the maximum
|
||||||
|
|
|
@ -25,6 +25,14 @@ Similar to sname:VkDescriptorSet special care must be taken for the lifetime
|
||||||
of resources referenced in sname:VkObjectTableNVX, which may be accessed at
|
of resources referenced in sname:VkObjectTableNVX, which may be accessed at
|
||||||
either generation or execution time.
|
either generation or execution time.
|
||||||
|
|
||||||
|
flink:vkCmdProcessCommandsNVX executes in a separate logical pipeline from
|
||||||
|
either graphics or compute.
|
||||||
|
When generating commands into a secondary command buffer, the command
|
||||||
|
generation must: be explicitly synchronized against the secondary command
|
||||||
|
buffer's execution.
|
||||||
|
When not using a secondary command buffer, the command generation is
|
||||||
|
automatically synchronized against the command execution.
|
||||||
|
|
||||||
== Features and Limitations
|
== Features and Limitations
|
||||||
|
|
||||||
// refBegin vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX Returns device-generated commands related properties of a physical device
|
// refBegin vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX Returns device-generated commands related properties of a physical device
|
||||||
|
|
|
@ -44,6 +44,8 @@ pname:pColor.
|
||||||
****
|
****
|
||||||
* pname:image must: have been created with
|
* pname:image must: have been created with
|
||||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:image is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:imageLayout must: specify the layout of the image subresource
|
* pname:imageLayout must: specify the layout of the image subresource
|
||||||
ranges of pname:image specified in pname:pRanges at the time this
|
ranges of pname:image specified in pname:pRanges at the time this
|
||||||
command is executed on a sname:VkDevice
|
command is executed on a sname:VkDevice
|
||||||
|
@ -90,6 +92,8 @@ include::../api/protos/vkCmdClearDepthStencilImage.txt[]
|
||||||
****
|
****
|
||||||
* pname:image must: have been created with
|
* pname:image must: have been created with
|
||||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:image is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:imageLayout must: specify the layout of the image subresource
|
* pname:imageLayout must: specify the layout of the image subresource
|
||||||
ranges of pname:image specified in pname:pRanges at the time this
|
ranges of pname:image specified in pname:pRanges at the time this
|
||||||
command is executed on a sname:VkDevice
|
command is executed on a sname:VkDevice
|
||||||
|
@ -339,6 +343,8 @@ fname:vkCmdFillBuffer.
|
||||||
multiple of `4`
|
multiple of `4`
|
||||||
* pname:dstBuffer must: have been created with
|
* pname:dstBuffer must: have been created with
|
||||||
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:dstBuffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
****
|
****
|
||||||
|
|
||||||
include::../validity/protos/vkCmdFillBuffer.txt[]
|
include::../validity/protos/vkCmdFillBuffer.txt[]
|
||||||
|
@ -384,6 +390,8 @@ fname:vkCmdUpdateBuffer.
|
||||||
pname:dstBuffer minus pname:dstOffset
|
pname:dstBuffer minus pname:dstOffset
|
||||||
* pname:dstBuffer must: have been created with
|
* pname:dstBuffer must: have been created with
|
||||||
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:dstBuffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:dstOffset must: be a multiple of `4`
|
* pname:dstOffset must: be a multiple of `4`
|
||||||
* pname:dataSize must: be less than or equal to `65536`
|
* pname:dataSize must: be less than or equal to `65536`
|
||||||
* pname:dataSize must: be a multiple of `4`
|
* pname:dataSize must: be a multiple of `4`
|
||||||
|
|
|
@ -95,8 +95,12 @@ memory.
|
||||||
in memory
|
in memory
|
||||||
* pname:srcBuffer must: have been created with
|
* pname:srcBuffer must: have been created with
|
||||||
ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
|
ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
|
||||||
|
* If pname:srcBuffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:dstBuffer must: have been created with
|
* pname:dstBuffer must: have been created with
|
||||||
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:dstBuffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
****
|
****
|
||||||
|
|
||||||
include::../validity/protos/vkCmdCopyBuffer.txt[]
|
include::../validity/protos/vkCmdCopyBuffer.txt[]
|
||||||
|
@ -241,6 +245,8 @@ images, but both images must: have the same number of samples.
|
||||||
in memory
|
in memory
|
||||||
* pname:srcImage must: have been created with
|
* pname:srcImage must: have been created with
|
||||||
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
||||||
|
* If pname:srcImage is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:srcImageLayout must: specify the layout of the image subresources
|
* pname:srcImageLayout must: specify the layout of the image subresources
|
||||||
of pname:srcImage specified in pname:pRegions at the time this command
|
of pname:srcImage specified in pname:pRegions at the time this command
|
||||||
is executed on a sname:VkDevice
|
is executed on a sname:VkDevice
|
||||||
|
@ -249,6 +255,8 @@ images, but both images must: have the same number of samples.
|
||||||
ename:VK_IMAGE_LAYOUT_GENERAL
|
ename:VK_IMAGE_LAYOUT_GENERAL
|
||||||
* pname:dstImage must: have been created with
|
* pname:dstImage must: have been created with
|
||||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:dstImage is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:dstImageLayout must: specify the layout of the image subresources
|
* pname:dstImageLayout must: specify the layout of the image subresources
|
||||||
of pname:dstImage specified in pname:pRegions at the time this command
|
of pname:dstImage specified in pname:pRegions at the time this command
|
||||||
is executed on a sname:VkDevice
|
is executed on a sname:VkDevice
|
||||||
|
@ -417,8 +425,12 @@ source buffer to the specified region of the destination image.
|
||||||
in memory
|
in memory
|
||||||
* pname:srcBuffer must: have been created with
|
* pname:srcBuffer must: have been created with
|
||||||
ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
|
ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
|
||||||
|
* If pname:srcBuffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:dstImage must: have been created with
|
* pname:dstImage must: have been created with
|
||||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:dstImage is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:dstImage must: have a sample count equal to
|
* pname:dstImage must: have a sample count equal to
|
||||||
ename:VK_SAMPLE_COUNT_1_BIT
|
ename:VK_SAMPLE_COUNT_1_BIT
|
||||||
* pname:dstImageLayout must: specify the layout of the image subresources
|
* pname:dstImageLayout must: specify the layout of the image subresources
|
||||||
|
@ -461,6 +473,8 @@ source image to the specified region of the destination buffer.
|
||||||
in memory
|
in memory
|
||||||
* pname:srcImage must: have been created with
|
* pname:srcImage must: have been created with
|
||||||
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
||||||
|
* If pname:srcImage is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:srcImage must: have a sample count equal to
|
* pname:srcImage must: have a sample count equal to
|
||||||
ename:VK_SAMPLE_COUNT_1_BIT
|
ename:VK_SAMPLE_COUNT_1_BIT
|
||||||
* pname:srcImageLayout must: specify the layout of the image subresources
|
* pname:srcImageLayout must: specify the layout of the image subresources
|
||||||
|
@ -471,6 +485,8 @@ source image to the specified region of the destination buffer.
|
||||||
ename:VK_IMAGE_LAYOUT_GENERAL
|
ename:VK_IMAGE_LAYOUT_GENERAL
|
||||||
* pname:dstBuffer must: have been created with
|
* pname:dstBuffer must: have been created with
|
||||||
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:dstBuffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
****
|
****
|
||||||
|
|
||||||
include::../validity/protos/vkCmdCopyImageToBuffer.txt[]
|
include::../validity/protos/vkCmdCopyImageToBuffer.txt[]
|
||||||
|
@ -805,6 +821,8 @@ representable range of the destination format, then casting the value.
|
||||||
fname:vkGetPhysicalDeviceFormatProperties
|
fname:vkGetPhysicalDeviceFormatProperties
|
||||||
* pname:srcImage must: have been created with
|
* pname:srcImage must: have been created with
|
||||||
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
||||||
|
* If pname:srcImage is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:srcImageLayout must: specify the layout of the image subresources
|
* pname:srcImageLayout must: specify the layout of the image subresources
|
||||||
of pname:srcImage specified in pname:pRegions at the time this command
|
of pname:srcImage specified in pname:pRegions at the time this command
|
||||||
is executed on a sname:VkDevice
|
is executed on a sname:VkDevice
|
||||||
|
@ -819,6 +837,8 @@ representable range of the destination format, then casting the value.
|
||||||
fname:vkGetPhysicalDeviceFormatProperties
|
fname:vkGetPhysicalDeviceFormatProperties
|
||||||
* pname:dstImage must: have been created with
|
* pname:dstImage must: have been created with
|
||||||
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:dstImage is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:dstImageLayout must: specify the layout of the image subresources
|
* pname:dstImageLayout must: specify the layout of the image subresources
|
||||||
of pname:dstImage specified in pname:pRegions at the time this command
|
of pname:dstImage specified in pname:pRegions at the time this command
|
||||||
is executed on a sname:VkDevice
|
is executed on a sname:VkDevice
|
||||||
|
@ -980,8 +1000,12 @@ pname:layerCount layers are resolved to the destination image.
|
||||||
* The union of all source regions, and the union of all destination
|
* The union of all source regions, and the union of all destination
|
||||||
regions, specified by the elements of pname:pRegions, must: not overlap
|
regions, specified by the elements of pname:pRegions, must: not overlap
|
||||||
in memory
|
in memory
|
||||||
|
* If pname:srcImage is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:srcImage must: have a sample count equal to any valid sample count
|
* pname:srcImage must: have a sample count equal to any valid sample count
|
||||||
value other than ename:VK_SAMPLE_COUNT_1_BIT
|
value other than ename:VK_SAMPLE_COUNT_1_BIT
|
||||||
|
* If pname:dstImage is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:dstImage must: have a sample count equal to
|
* pname:dstImage must: have a sample count equal to
|
||||||
ename:VK_SAMPLE_COUNT_1_BIT
|
ename:VK_SAMPLE_COUNT_1_BIT
|
||||||
* pname:srcImageLayout must: specify the layout of the image subresources
|
* pname:srcImageLayout must: specify the layout of the image subresources
|
||||||
|
|
|
@ -1609,6 +1609,13 @@ use immutable samplers or must: all not use immutable samplers.
|
||||||
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the pname:offset member
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the pname:offset member
|
||||||
of any given element of pname:pBufferInfo must: be a multiple of
|
of any given element of pname:pBufferInfo must: be a multiple of
|
||||||
sname:VkPhysicalDeviceLimits::pname:minStorageBufferOffsetAlignment
|
sname:VkPhysicalDeviceLimits::pname:minStorageBufferOffsetAlignment
|
||||||
|
* If pname:descriptorType is ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||||||
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
|
||||||
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, or
|
||||||
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the pname:buffer member
|
||||||
|
of any given element of pname:pBufferInfo that is non-sparse must: be
|
||||||
|
bound completely and contiguously to a single sname:VkDeviceMemory
|
||||||
|
object
|
||||||
* If pname:descriptorType is ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
|
* If pname:descriptorType is ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
|
||||||
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the pname:buffer member
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the pname:buffer member
|
||||||
of any given element of pname:pBufferInfo must: have been created with
|
of any given element of pname:pBufferInfo must: have been created with
|
||||||
|
|
|
@ -131,6 +131,8 @@ at pname:offset.
|
||||||
|
|
||||||
.Valid Usage
|
.Valid Usage
|
||||||
****
|
****
|
||||||
|
* If pname:buffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* For each set _n_ that is statically used by the sname:VkPipeline
|
* For each set _n_ that is statically used by the sname:VkPipeline
|
||||||
currently bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE, a descriptor
|
currently bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE, a descriptor
|
||||||
set must: have been bound to _n_ at
|
set must: have been bound to _n_ at
|
||||||
|
|
|
@ -427,6 +427,8 @@ include::../api/enums/VkIndexType.txt[]
|
||||||
multiple of the type indicated by pname:indexType
|
multiple of the type indicated by pname:indexType
|
||||||
* pname:buffer must: have been created with the
|
* pname:buffer must: have been created with the
|
||||||
ename:VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag
|
ename:VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag
|
||||||
|
* If pname:buffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
****
|
****
|
||||||
|
|
||||||
include::../validity/protos/vkCmdBindIndexBuffer.txt[]
|
include::../validity/protos/vkCmdBindIndexBuffer.txt[]
|
||||||
|
@ -736,6 +738,8 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
|
||||||
|
|
||||||
.Valid Usage
|
.Valid Usage
|
||||||
****
|
****
|
||||||
|
* If pname:buffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:offset must: be a multiple of `4`
|
* pname:offset must: be a multiple of `4`
|
||||||
* If pname:drawCount is greater than `1`, pname:stride must: be a multiple
|
* If pname:drawCount is greater than `1`, pname:stride must: be a multiple
|
||||||
of `4` and must: be greater than or equal to
|
of `4` and must: be greater than or equal to
|
||||||
|
@ -1039,6 +1043,8 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
|
||||||
|
|
||||||
.Valid Usage
|
.Valid Usage
|
||||||
****
|
****
|
||||||
|
* If pname:buffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:offset must: be a multiple of `4`
|
* pname:offset must: be a multiple of `4`
|
||||||
* If pname:drawCount is greater than `1`, pname:stride must: be a multiple
|
* If pname:drawCount is greater than `1`, pname:stride must: be a multiple
|
||||||
of `4` and must: be greater than or equal to
|
of `4` and must: be greater than or equal to
|
||||||
|
|
|
@ -3745,7 +3745,7 @@ include::../api/protos/vkGetPhysicalDeviceImageFormatProperties.txt[]
|
||||||
|
|
||||||
The pname:format, pname:type, pname:tiling, pname:usage, and pname:flags
|
The pname:format, pname:type, pname:tiling, pname:usage, and pname:flags
|
||||||
parameters correspond to parameters that would be consumed by
|
parameters correspond to parameters that would be consumed by
|
||||||
flink:vkCreateImage.
|
flink:vkCreateImage (as members of sname:VkImageCreateInfo).
|
||||||
|
|
||||||
If pname:format is not a supported image format, or if the combination of
|
If pname:format is not a supported image format, or if the combination of
|
||||||
pname:format, pname:type, pname:tiling, pname:usage, and pname:flags is not
|
pname:format, pname:type, pname:tiling, pname:usage, and pname:flags is not
|
||||||
|
|
|
@ -409,6 +409,8 @@ commands.
|
||||||
corresponding element in pname:pBuffers
|
corresponding element in pname:pBuffers
|
||||||
* All elements of pname:pBuffers must: have been created with the
|
* All elements of pname:pBuffers must: have been created with the
|
||||||
ename:VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag
|
ename:VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag
|
||||||
|
* Each element of pname:pBuffers that is non-sparse must: be bound
|
||||||
|
completely and contiguously to a single sname:VkDeviceMemory object
|
||||||
****
|
****
|
||||||
|
|
||||||
include::../validity/protos/vkCmdBindVertexBuffers.txt[]
|
include::../validity/protos/vkCmdBindVertexBuffers.txt[]
|
||||||
|
|
|
@ -550,6 +550,8 @@ before using the results.
|
||||||
<<queries-operation-memorylayout,here>>
|
<<queries-operation-memorylayout,here>>
|
||||||
* pname:dstBuffer must: have been created with
|
* pname:dstBuffer must: have been created with
|
||||||
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
|
* If pname:dstBuffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* If the pname:queryType used to create pname:queryPool was
|
* If the pname:queryType used to create pname:queryPool was
|
||||||
ename:VK_QUERY_TYPE_TIMESTAMP, pname:flags must: not contain
|
ename:VK_QUERY_TYPE_TIMESTAMP, pname:flags must: not contain
|
||||||
ename:VK_QUERY_RESULT_PARTIAL_BIT
|
ename:VK_QUERY_RESULT_PARTIAL_BIT
|
||||||
|
|
|
@ -317,6 +317,8 @@ include::../api/structs/VkBufferViewCreateInfo.txt[]
|
||||||
ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT flag in
|
ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT flag in
|
||||||
sname:VkFormatProperties::pname:bufferFeatures returned by
|
sname:VkFormatProperties::pname:bufferFeatures returned by
|
||||||
fname:vkGetPhysicalDeviceFormatProperties
|
fname:vkGetPhysicalDeviceFormatProperties
|
||||||
|
* If pname:buffer is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
****
|
****
|
||||||
|
|
||||||
include::../validity/structs/VkBufferViewCreateInfo.txt[]
|
include::../validity/structs/VkBufferViewCreateInfo.txt[]
|
||||||
|
@ -432,10 +434,6 @@ include::../api/structs/VkImageCreateInfo.txt[]
|
||||||
pname:initialLayout must: be ename:VK_IMAGE_LAYOUT_UNDEFINED or
|
pname:initialLayout must: be ename:VK_IMAGE_LAYOUT_UNDEFINED or
|
||||||
ename:VK_IMAGE_LAYOUT_PREINITIALIZED.
|
ename:VK_IMAGE_LAYOUT_PREINITIALIZED.
|
||||||
|
|
||||||
Valid limits for the image pname:extent, pname:mipLevels, pname:arrayLayers
|
|
||||||
and pname:samples members are queried with the
|
|
||||||
flink:vkGetPhysicalDeviceImageFormatProperties command.
|
|
||||||
|
|
||||||
Images created with pname:tiling equal to ename:VK_IMAGE_TILING_LINEAR have
|
Images created with pname:tiling equal to ename:VK_IMAGE_TILING_LINEAR have
|
||||||
further restrictions on their limits and capabilities compared to images
|
further restrictions on their limits and capabilities compared to images
|
||||||
created with pname:tiling equal to ename:VK_IMAGE_TILING_OPTIMAL.
|
created with pname:tiling equal to ename:VK_IMAGE_TILING_OPTIMAL.
|
||||||
|
@ -452,13 +450,25 @@ supported unless other parameters meet all of the constraints:
|
||||||
|
|
||||||
Implementations may: support additional limits and capabilities beyond those
|
Implementations may: support additional limits and capabilities beyond those
|
||||||
listed above.
|
listed above.
|
||||||
To determine the specific capabilities of an implementation, query the valid
|
|
||||||
pname:usage bits by calling flink:vkGetPhysicalDeviceFormatProperties and
|
To query an implementation's specific capabilities for a given combination
|
||||||
the valid limits for pname:mipLevels and pname:arrayLayers by calling
|
of pname:format, pname:type, pname:tiling, pname:usage, and pname:flags,
|
||||||
flink:vkGetPhysicalDeviceImageFormatProperties.
|
call flink:vkGetPhysicalDeviceImageFormatProperties.
|
||||||
|
The return value indicates whether that combination of image settings is
|
||||||
|
supported.
|
||||||
|
On success, the sname:VkImageFormatProperties output parameter indicates the
|
||||||
|
set of valid pname:samples bits and the limits for pname:extent,
|
||||||
|
pname:mipLevels, and pname:arrayLayers.
|
||||||
|
|
||||||
|
To determine the set of valid pname:usage bits for a given format, call
|
||||||
|
flink:vkGetPhysicalDeviceFormatProperties.
|
||||||
|
|
||||||
.Valid Usage
|
.Valid Usage
|
||||||
****
|
****
|
||||||
|
* The combination of pname:format, pname:type, pname:tiling, pname:usage,
|
||||||
|
and pname:flags must: be supported, as indicated by a VK_SUCCESS return
|
||||||
|
value from fname:vkGetPhysicalDeviceImageFormatProperties invoked with
|
||||||
|
the same values passed to the corresponding parameters.
|
||||||
* If pname:sharingMode is ename:VK_SHARING_MODE_CONCURRENT,
|
* If pname:sharingMode is ename:VK_SHARING_MODE_CONCURRENT,
|
||||||
pname:pQueueFamilyIndices must: be a pointer to an array of
|
pname:pQueueFamilyIndices must: be a pointer to an array of
|
||||||
pname:queueFamilyIndexCount basetype:uint32_t values
|
pname:queueFamilyIndexCount basetype:uint32_t values
|
||||||
|
@ -1505,6 +1515,8 @@ pname:layerCount = 1
|
||||||
* If pname:image was not created with the
|
* If pname:image was not created with the
|
||||||
ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be
|
ename:VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, pname:format must: be
|
||||||
identical to the pname:format used to create pname:image
|
identical to the pname:format used to create pname:image
|
||||||
|
* If pname:image is non-sparse then it must: be bound completely and
|
||||||
|
contiguously to a single sname:VkDeviceMemory object
|
||||||
* pname:subResourceRange and pname:viewType must: be compatible with the
|
* pname:subResourceRange and pname:viewType must: be compatible with the
|
||||||
image, as described in the
|
image, as described in the
|
||||||
<<resources-image-views-compatibility,compatibility table>>
|
<<resources-image-views-compatibility,compatibility table>>
|
||||||
|
|
|
@ -278,6 +278,10 @@ ifdef::VK_NVX_device_generated_commands[]
|
||||||
endif::VK_NVX_device_generated_commands[]
|
endif::VK_NVX_device_generated_commands[]
|
||||||
* ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT: Stage of the pipeline where
|
* ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT: Stage of the pipeline where
|
||||||
Draw/DispatchIndirect data structures are consumed.
|
Draw/DispatchIndirect data structures are consumed.
|
||||||
|
ifdef::VK_NVX_device_generated_commands[]
|
||||||
|
This stage also includes reading commands written by
|
||||||
|
flink:vkCmdProcessCommandsNVX.
|
||||||
|
endif::VK_NVX_device_generated_commands[]
|
||||||
* ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT: Stage of the pipeline where
|
* ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT: Stage of the pipeline where
|
||||||
vertex and index buffers are consumed.
|
vertex and index buffers are consumed.
|
||||||
* ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT: Vertex shader stage.
|
* ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT: Vertex shader stage.
|
||||||
|
@ -320,9 +324,6 @@ endif::VK_NVX_device_generated_commands[]
|
||||||
Equivalent to the logical or of:
|
Equivalent to the logical or of:
|
||||||
|
|
||||||
** ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
|
** ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
|
||||||
ifdef::VK_NVX_device_generated_commands[]
|
|
||||||
** ename:VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX
|
|
||||||
endif::VK_NVX_device_generated_commands[]
|
|
||||||
** ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
|
** ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
|
||||||
** ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
|
** ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
|
||||||
** ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
|
** ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
|
||||||
|
@ -422,9 +423,6 @@ and <<devsandqueues-queues,Queues>>.
|
||||||
|====
|
|====
|
||||||
|Pipeline stage flag | Required queue capability flag
|
|Pipeline stage flag | Required queue capability flag
|
||||||
|ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT | None required
|
|ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT | None required
|
||||||
ifdef::VK_NVX_device_generated_commands[]
|
|
||||||
|ename:VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX | ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT
|
|
||||||
endif::VK_NVX_device_generated_commands[]
|
|
||||||
|ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT
|
|ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT
|
||||||
|ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | ename:VK_QUEUE_GRAPHICS_BIT
|
|ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | ename:VK_QUEUE_GRAPHICS_BIT
|
||||||
|ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | ename:VK_QUEUE_GRAPHICS_BIT
|
|ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | ename:VK_QUEUE_GRAPHICS_BIT
|
||||||
|
@ -441,6 +439,9 @@ endif::VK_NVX_device_generated_commands[]
|
||||||
|ename:VK_PIPELINE_STAGE_HOST_BIT | None required
|
|ename:VK_PIPELINE_STAGE_HOST_BIT | None required
|
||||||
|ename:VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT | ename:VK_QUEUE_GRAPHICS_BIT
|
|ename:VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT | ename:VK_QUEUE_GRAPHICS_BIT
|
||||||
|ename:VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | None required
|
|ename:VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | None required
|
||||||
|
ifdef::VK_NVX_device_generated_commands[]
|
||||||
|
|ename:VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX | ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT
|
||||||
|
endif::VK_NVX_device_generated_commands[]
|
||||||
|====
|
|====
|
||||||
|
|
||||||
[[synchronization-pipeline-stages-order]]
|
[[synchronization-pipeline-stages-order]]
|
||||||
|
@ -473,9 +474,6 @@ compute, transfer or host.
|
||||||
For the graphics pipeline, the following stages occur in this order:
|
For the graphics pipeline, the following stages occur in this order:
|
||||||
|
|
||||||
* ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
|
* ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
|
||||||
ifdef::VK_NVX_device_generated_commands[]
|
|
||||||
* ename:VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX
|
|
||||||
endif::VK_NVX_device_generated_commands[]
|
|
||||||
* ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
|
* ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
|
||||||
* ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
|
* ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
|
||||||
* ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
|
* ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
|
||||||
|
@ -491,9 +489,6 @@ endif::VK_NVX_device_generated_commands[]
|
||||||
For the compute pipeline, the following stages occur in this order:
|
For the compute pipeline, the following stages occur in this order:
|
||||||
|
|
||||||
* ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
|
* ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
|
||||||
ifdef::VK_NVX_device_generated_commands[]
|
|
||||||
* ename:VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX
|
|
||||||
endif::VK_NVX_device_generated_commands[]
|
|
||||||
* ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
|
* ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
|
||||||
* ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|
* ename:VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
|
||||||
* ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
|
* ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
|
||||||
|
@ -509,6 +504,14 @@ guaranteed:
|
||||||
|
|
||||||
* ename:VK_PIPELINE_STAGE_HOST_BIT
|
* ename:VK_PIPELINE_STAGE_HOST_BIT
|
||||||
|
|
||||||
|
ifdef::VK_NVX_device_generated_commands[]
|
||||||
|
For the command processing pipeline, the following stages occur in this
|
||||||
|
order:
|
||||||
|
|
||||||
|
* ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
|
||||||
|
* ename:VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX
|
||||||
|
* ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
|
||||||
|
endif::VK_NVX_device_generated_commands[]
|
||||||
|
|
||||||
[[synchronization-access-types]]
|
[[synchronization-access-types]]
|
||||||
=== Access Types
|
=== Access Types
|
||||||
|
@ -599,6 +602,12 @@ include::../api/enums/VkAccessFlagBits.txt[]
|
||||||
When included in a destination access mask, makes all available writes
|
When included in a destination access mask, makes all available writes
|
||||||
visible to all future write accesses on entities known to the Vulkan
|
visible to all future write accesses on entities known to the Vulkan
|
||||||
device.
|
device.
|
||||||
|
ifdef::VK_NVX_device_generated_commands[]
|
||||||
|
* ename:VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX: Reads from sname:VkBuffer
|
||||||
|
inputs to flink:vkCmdProcessCommandsNVX.
|
||||||
|
* ename:VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX: Writes to the target
|
||||||
|
command buffer in flink:vkCmdProcessCommandsNVX.
|
||||||
|
endif::VK_NVX_device_generated_commands[]
|
||||||
|
|
||||||
Certain access types are only performed by a subset of pipeline stages.
|
Certain access types are only performed by a subset of pipeline stages.
|
||||||
Any synchronization command that takes both stage masks and access masks
|
Any synchronization command that takes both stage masks and access masks
|
||||||
|
@ -633,6 +642,10 @@ perform that type of access.
|
||||||
|ename:VK_ACCESS_HOST_WRITE_BIT | ename:VK_PIPELINE_STAGE_HOST_BIT
|
|ename:VK_ACCESS_HOST_WRITE_BIT | ename:VK_PIPELINE_STAGE_HOST_BIT
|
||||||
|ename:VK_ACCESS_MEMORY_READ_BIT | N/A
|
|ename:VK_ACCESS_MEMORY_READ_BIT | N/A
|
||||||
|ename:VK_ACCESS_MEMORY_WRITE_BIT | N/A
|
|ename:VK_ACCESS_MEMORY_WRITE_BIT | N/A
|
||||||
|
ifdef::VK_NVX_device_generated_commands[]
|
||||||
|
|ename:VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX | ename:VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX
|
||||||
|
|ename:VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX | ename:VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX
|
||||||
|
endif::VK_NVX_device_generated_commands[]
|
||||||
|====
|
|====
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,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> 36</type>
|
#define <name>VK_HEADER_VERSION</name> 37</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>
|
||||||
|
@ -1660,7 +1660,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
|
||||||
<member externsync="true"><type>VkObjectTableNVX</type> <name>objectTable</name></member>
|
<member externsync="true"><type>VkObjectTableNVX</type> <name>objectTable</name></member>
|
||||||
<member><type>VkIndirectCommandsLayoutNVX</type> <name>indirectCommandsLayout</name></member>
|
<member><type>VkIndirectCommandsLayoutNVX</type> <name>indirectCommandsLayout</name></member>
|
||||||
<member><type>uint32_t</type> <name>indirectCommandsTokenCount</name></member>
|
<member><type>uint32_t</type> <name>indirectCommandsTokenCount</name></member>
|
||||||
<member len="tokenCount">const <type>VkIndirectCommandsTokenNVX</type>* <name>pIndirectCommandsTokens</name></member>
|
<member len="indirectCommandsTokenCount">const <type>VkIndirectCommandsTokenNVX</type>* <name>pIndirectCommandsTokens</name></member>
|
||||||
<member><type>uint32_t</type> <name>maxSequencesCount</name></member>
|
<member><type>uint32_t</type> <name>maxSequencesCount</name></member>
|
||||||
<member optional="true" externsync="true"><type>VkCommandBuffer</type> <name>targetCommandBuffer</name></member>
|
<member optional="true" externsync="true"><type>VkCommandBuffer</type> <name>targetCommandBuffer</name></member>
|
||||||
<member optional="true"><type>VkBuffer</type> <name>sequencesCountBuffer</name></member>
|
<member optional="true"><type>VkBuffer</type> <name>sequencesCountBuffer</name></member>
|
||||||
|
@ -2520,6 +2520,10 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
|
||||||
<enum value="26" name="VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"/>
|
<enum value="26" name="VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"/>
|
||||||
<enum value="27" name="VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"/>
|
<enum value="27" name="VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"/>
|
||||||
<enum value="28" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"/>
|
<enum value="28" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"/>
|
||||||
|
<enum value="29" name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"/>
|
||||||
|
<enum value="30" name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"/>
|
||||||
|
<enum value="31" name="VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT"/>
|
||||||
|
<enum value="32" name="VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT"/>
|
||||||
</enums>
|
</enums>
|
||||||
<enums name="VkDebugReportErrorEXT" type="enum">
|
<enums name="VkDebugReportErrorEXT" type="enum">
|
||||||
<enum value="0" name="VK_DEBUG_REPORT_ERROR_NONE_EXT"/> <!-- Used for INFO & other non-error messages -->
|
<enum value="0" name="VK_DEBUG_REPORT_ERROR_NONE_EXT"/> <!-- Used for INFO & other non-error messages -->
|
||||||
|
@ -4231,7 +4235,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
|
||||||
</extension>
|
</extension>
|
||||||
<extension name="VK_EXT_debug_report" number="12" type="instance" author="Google, Inc." contact="Courtney Goeltzenleuchter @courtney" supported="vulkan">
|
<extension name="VK_EXT_debug_report" number="12" type="instance" author="Google, Inc." contact="Courtney Goeltzenleuchter @courtney" supported="vulkan">
|
||||||
<require>
|
<require>
|
||||||
<enum value="3" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/>
|
<enum value="4" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/>
|
||||||
<enum value=""VK_EXT_debug_report"" name="VK_EXT_DEBUG_REPORT_EXTENSION_NAME"/>
|
<enum value=""VK_EXT_debug_report"" name="VK_EXT_DEBUG_REPORT_EXTENSION_NAME"/>
|
||||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"/>
|
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"/>
|
||||||
<enum offset="1" dir="-" extends="VkResult" name="VK_ERROR_VALIDATION_FAILED_EXT"/>
|
<enum offset="1" dir="-" extends="VkResult" name="VK_ERROR_VALIDATION_FAILED_EXT"/>
|
||||||
|
@ -4752,6 +4756,8 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
|
||||||
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX"/>
|
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX"/>
|
||||||
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX"/>
|
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX"/>
|
||||||
<enum bitpos="17" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX"/>
|
<enum bitpos="17" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX"/>
|
||||||
|
<enum bitpos="17" extends="VkAccessFlagBits" name="VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX"/>
|
||||||
|
<enum bitpos="18" extends="VkAccessFlagBits" name="VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX"/>
|
||||||
<type name="VkObjectTableNVX"/>
|
<type name="VkObjectTableNVX"/>
|
||||||
<type name="VkIndirectCommandsLayoutNVX"/>
|
<type name="VkIndirectCommandsLayoutNVX"/>
|
||||||
<type name="VkIndirectCommandsLayoutUsageFlagsNVX"/>
|
<type name="VkIndirectCommandsLayoutUsageFlagsNVX"/>
|
||||||
|
@ -4827,5 +4833,71 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
|
||||||
<enum value=""VK_KHR_extension_94"" name="VK_KHR_EXTENSION_94_EXTENSION_NAME"/>
|
<enum value=""VK_KHR_extension_94"" name="VK_KHR_EXTENSION_94_EXTENSION_NAME"/>
|
||||||
</require>
|
</require>
|
||||||
</extension>
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_95" number="95" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_95_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_95"" name="VK_NV_EXTENSION_95_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_96" number="96" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_96_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_96"" name="VK_NV_EXTENSION_96_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_97" number="97" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_97_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_97"" name="VK_NV_EXTENSION_97_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_98" number="98" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_98_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_98"" name="VK_NV_EXTENSION_98_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_99" number="99" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_99_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_99"" name="VK_NV_EXTENSION_99_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_100" number="100" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_100_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_100"" name="VK_NV_EXTENSION_100_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_101" number="101" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_101_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_101"" name="VK_NV_EXTENSION_101_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_102" number="102" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_102_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_102"" name="VK_NV_EXTENSION_102_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_103" number="103" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_103_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_103"" name="VK_NV_EXTENSION_103_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_NV_extension_104" number="104" author="NVIDIA" contact="Mathias Schott @mschott" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_NV_EXTENSION_104_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_NV_extension_104"" name="VK_NV_EXTENSION_104_EXTENSION_NAME"/>
|
||||||
|
</require>
|
||||||
|
</extension>
|
||||||
|
<extension name="VK_EXT_extension_105" number="105" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtneygo" supported="disabled">
|
||||||
|
<require>
|
||||||
|
<enum value="0" name="VK_KHR_EXTENSION_105_SPEC_VERSION"/>
|
||||||
|
<enum value=""VK_EXT_extension_105"" name="VK_KHR_EXTENSION_105_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 36
|
#define VK_HEADER_VERSION 37
|
||||||
|
|
||||||
|
|
||||||
#define VK_NULL_HANDLE 0
|
#define VK_NULL_HANDLE 0
|
||||||
|
@ -1099,6 +1099,8 @@ typedef enum VkAccessFlagBits {
|
||||||
VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
|
VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
|
||||||
VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
|
VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
|
||||||
VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
|
VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
|
||||||
|
VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
|
||||||
|
VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
|
||||||
VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||||
} VkAccessFlagBits;
|
} VkAccessFlagBits;
|
||||||
typedef VkFlags VkAccessFlags;
|
typedef VkFlags VkAccessFlags;
|
||||||
|
@ -3742,7 +3744,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
|
||||||
#define VK_EXT_debug_report 1
|
#define VK_EXT_debug_report 1
|
||||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
||||||
|
|
||||||
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 3
|
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 4
|
||||||
#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
|
#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
|
||||||
#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
|
#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
|
||||||
|
|
||||||
|
@ -3777,9 +3779,13 @@ typedef enum VkDebugReportObjectTypeEXT {
|
||||||
VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
|
VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
|
||||||
VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
|
VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
|
||||||
VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
|
VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
|
||||||
|
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
|
||||||
|
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
|
||||||
|
VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
|
||||||
|
VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
|
||||||
VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
|
VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
|
||||||
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
|
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
|
||||||
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
|
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
|
||||||
VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
|
VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
} VkDebugReportObjectTypeEXT;
|
} VkDebugReportObjectTypeEXT;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue