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
|
||||
<<synchronization-access-types-supported,supported access types>>
|
||||
section to catch access masks that include bits which are not supported
|
||||
by pipeline stages in the stage masks (partially addresses public issue
|
||||
1006).
|
||||
by pipeline stages in the stage masks (partially addresses
|
||||
github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/1006 ).
|
||||
|
||||
Internal Issues:
|
||||
|
||||
|
@ -1707,3 +1707,34 @@ Other Issues:
|
|||
* Add validity language requiring that
|
||||
slink:VkPushConstantRange::pname:offset be a multiple of 4, as stated in
|
||||
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)
|
||||
# A generated included file containing the spec version, date, and git commit
|
||||
SPECVERSION = specversion.txt
|
||||
SPECREVISION = 1.0.36
|
||||
SPECREVISION = 1.0.37
|
||||
SPECREMARK =
|
||||
|
||||
# Spec targets
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
*Registered Extension Number*::
|
||||
12
|
||||
*Last Modified Date*::
|
||||
2016-09-17
|
||||
2016-12-08
|
||||
*Revision*::
|
||||
3
|
||||
4
|
||||
*IP Status*::
|
||||
No known IP claims.
|
||||
*Dependencies*::
|
||||
|
@ -19,6 +19,7 @@
|
|||
- Courtney Goeltzenleuchter, LunarG
|
||||
- Dan Ginsburg, Valve
|
||||
- Jon Ashburn, LunarG
|
||||
- Mark Lobodzinski, LunarG
|
||||
*Contacts*::
|
||||
- Courtney Goeltzenleuchter
|
||||
|
||||
|
@ -152,9 +153,18 @@ We should probably add some.
|
|||
|
||||
=== Version History
|
||||
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
There is no revision history in the current spec.
|
||||
We should probably add some.
|
||||
====
|
||||
* Revision 1, 2015-05-20 (Courtney Goetzenleuchter)
|
||||
- Initial draft, based on LunarG KHR spec, other KHR specs
|
||||
|
||||
* Revision 2, 2016-02-16 (Courtney Goetzenleuchter)
|
||||
- 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:VkIndirectCommandsLayoutNVX
|
||||
|
||||
== New Flag Types
|
||||
=== New Flag Types
|
||||
|
||||
* sname:VkIndirectCommandsLayoutUsageFlagsNVX
|
||||
* sname:VkObjectEntryUsageFlagsNVX
|
||||
|
@ -313,11 +313,35 @@ vkCmdProcessCommandsNVX
|
|||
22) In which pipeline stage do the device generated command expansion
|
||||
happen?
|
||||
|
||||
This is required in order to allow applications to properly syncronize
|
||||
access (e.g. via memory barriers) when writing to the buffers referenced
|
||||
by vkCmdProcessCommandsNVX
|
||||
vkCmdProcessCommandsNVX is treated as if it occurs in a separate logical
|
||||
pipeline from either graphics or compute, and that pipeline only includes
|
||||
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
|
||||
subsection?
|
||||
|
@ -360,13 +384,34 @@ TODO links to gameworks & designworks samples
|
|||
// If you modify the input buffer data referenced by VkCmdProcessCommandsInfoNVX,
|
||||
// ensure you have added the appropriate barriers prior generation process.
|
||||
// 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);
|
||||
...
|
||||
// execute the secondary command buffer and ensure the processing that modifies command-buffer content
|
||||
// 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);
|
||||
|
||||
---------------------------------------------------
|
||||
|
|
|
@ -54,10 +54,14 @@ include::../api/enums/VkDebugReportFlagBitsEXT.txt[]
|
|||
|
||||
* ename:VK_DEBUG_REPORT_ERROR_BIT_EXT indicates an error that may cause
|
||||
undefined results, including an application crash.
|
||||
* ename:VK_DEBUG_REPORT_WARNING_BIT_EXT indicates an unexpected use.
|
||||
E.g. Not destroying objects prior to destroying the containing object or
|
||||
potential inconsistencies between descriptor set layout and the layout
|
||||
in the corresponding shader, etc.
|
||||
* ename:VK_DEBUG_REPORT_WARNING_BIT_EXT indicates use of Vulkan that may
|
||||
expose an app bug.
|
||||
Such cases may not be immediately harmful, such as a fragment shader
|
||||
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
|
||||
potentially non-optimal use of Vulkan.
|
||||
E.g. using flink:vkCmdClearColorImage when a RenderPass load_op would
|
||||
|
@ -67,10 +71,10 @@ include::../api/enums/VkDebugReportFlagBitsEXT.txt[]
|
|||
application.
|
||||
* ename:VK_DEBUG_REPORT_DEBUG_BIT_EXT indicates diagnostic information
|
||||
from the loader and layers.
|
||||
|
||||
--
|
||||
+
|
||||
* pname:pfnCallback is the application callback function to call.
|
||||
* pname:pUserData is user data to be passed to the callback.
|
||||
--
|
||||
|
||||
For each sname:VkDebugReportCallbackEXT that is created the flags determine
|
||||
when that function is called.
|
||||
|
|
|
@ -232,9 +232,11 @@ The sname:VkSurfaceCapabilitiesKHR structure is defined as:
|
|||
include::../../api/structs/VkSurfaceCapabilitiesKHR.txt[]
|
||||
|
||||
* 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
|
||||
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,
|
||||
though there may: be limits related to the total amount of memory used
|
||||
by swapchain images.
|
||||
|
@ -244,20 +246,33 @@ include::../../api/structs/VkSurfaceCapabilitiesKHR.txt[]
|
|||
the surface.
|
||||
* pname:minImageExtent contains the smallest valid swapchain extent for
|
||||
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
|
||||
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
|
||||
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
|
||||
elink:VkSurfaceTransformFlagBitsKHR, describing the presentation
|
||||
transforms supported for the surface on the specified device.
|
||||
* pname:currentTransform is a bitmask of
|
||||
elink:VkSurfaceTransformFlagBitsKHR, describing the surface's current
|
||||
transform relative to the presentation engine's natural orientation.
|
||||
transforms supported for the surface on the specified device, and at
|
||||
least one bit will be set.
|
||||
* pname:currentTransform is the surface's current transform relative to
|
||||
the presentation engine's natural orientation, as described by
|
||||
elink:VkSurfaceTransformFlagBitsKHR.
|
||||
* pname:supportedCompositeAlpha is a bitmask of
|
||||
elink:VkCompositeAlphaFlagBitsKHR, representing the alpha compositing
|
||||
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
|
||||
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
|
||||
|
@ -279,8 +294,10 @@ include::../../validity/structs/VkSurfaceCapabilitiesKHR.txt[]
|
|||
|
||||
// refBegin VkSurfaceTransformFlagBitsKHR - presentation transforms supported on a device
|
||||
|
||||
The pname:supportedTransforms and pname:currentTransform members are of type
|
||||
ename:VkSurfaceTransformFlagBitsKHR, which contains the following values:
|
||||
slink:VkSurfaceCapabilitiesKHR::pname:supportedTransforms is a bitmask of,
|
||||
and slink:VkSurfaceCapabilitiesKHR::pname:currentTransform is a single bit
|
||||
from ename:VkSurfaceTransformFlagBitsKHR, which contains the following
|
||||
values:
|
||||
|
||||
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
|
||||
supported for the given pname:surface is returned in
|
||||
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
|
||||
user to the number of elements in the pname:pSurfaceFormats array, and on
|
||||
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[]
|
||||
|
||||
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
|
||||
size of the window, after the first image is presented.
|
||||
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
|
||||
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
|
||||
|
||||
// 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
|
||||
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
|
||||
ranges of pname:image specified in pname:pRanges at the time this
|
||||
command is executed on a sname:VkDevice
|
||||
|
@ -90,6 +92,8 @@ include::../api/protos/vkCmdClearDepthStencilImage.txt[]
|
|||
****
|
||||
* pname:image must: have been created with
|
||||
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
|
||||
ranges of pname:image specified in pname:pRanges at the time this
|
||||
command is executed on a sname:VkDevice
|
||||
|
@ -339,6 +343,8 @@ fname:vkCmdFillBuffer.
|
|||
multiple of `4`
|
||||
* pname:dstBuffer must: have been created with
|
||||
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[]
|
||||
|
@ -384,6 +390,8 @@ fname:vkCmdUpdateBuffer.
|
|||
pname:dstBuffer minus pname:dstOffset
|
||||
* pname:dstBuffer must: have been created with
|
||||
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:dataSize must: be less than or equal to `65536`
|
||||
* pname:dataSize must: be a multiple of `4`
|
||||
|
|
|
@ -95,8 +95,12 @@ memory.
|
|||
in memory
|
||||
* pname:srcBuffer must: have been created with
|
||||
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
|
||||
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[]
|
||||
|
@ -241,6 +245,8 @@ images, but both images must: have the same number of samples.
|
|||
in memory
|
||||
* pname:srcImage must: have been created with
|
||||
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
|
||||
of pname:srcImage specified in pname:pRegions at the time this command
|
||||
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
|
||||
* pname:dstImage must: have been created with
|
||||
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
|
||||
of pname:dstImage specified in pname:pRegions at the time this command
|
||||
is executed on a sname:VkDevice
|
||||
|
@ -417,8 +425,12 @@ source buffer to the specified region of the destination image.
|
|||
in memory
|
||||
* pname:srcBuffer must: have been created with
|
||||
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
|
||||
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
|
||||
ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* 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
|
||||
* pname:srcImage must: have been created with
|
||||
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
|
||||
ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* 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
|
||||
* pname:dstBuffer must: have been created with
|
||||
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[]
|
||||
|
@ -805,6 +821,8 @@ representable range of the destination format, then casting the value.
|
|||
fname:vkGetPhysicalDeviceFormatProperties
|
||||
* pname:srcImage must: have been created with
|
||||
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
|
||||
of pname:srcImage specified in pname:pRegions at the time this command
|
||||
is executed on a sname:VkDevice
|
||||
|
@ -819,6 +837,8 @@ representable range of the destination format, then casting the value.
|
|||
fname:vkGetPhysicalDeviceFormatProperties
|
||||
* pname:dstImage must: have been created with
|
||||
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
|
||||
of pname:dstImage specified in pname:pRegions at the time this command
|
||||
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
|
||||
regions, specified by the elements of pname:pRegions, must: not overlap
|
||||
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
|
||||
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
|
||||
ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* 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
|
||||
of any given element of pname:pBufferInfo must: be a multiple of
|
||||
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
|
||||
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the pname:buffer member
|
||||
of any given element of pname:pBufferInfo must: have been created with
|
||||
|
|
|
@ -131,6 +131,8 @@ at pname:offset.
|
|||
|
||||
.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
|
||||
currently bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE, a descriptor
|
||||
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
|
||||
* pname:buffer must: have been created with the
|
||||
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[]
|
||||
|
@ -736,6 +738,8 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
|
|||
|
||||
.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`
|
||||
* If pname:drawCount is greater than `1`, pname:stride must: be a multiple
|
||||
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
|
||||
****
|
||||
* 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`
|
||||
* If pname:drawCount is greater than `1`, pname:stride must: be a multiple
|
||||
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
|
||||
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
|
||||
pname:format, pname:type, pname:tiling, pname:usage, and pname:flags is not
|
||||
|
|
|
@ -409,6 +409,8 @@ commands.
|
|||
corresponding element in pname:pBuffers
|
||||
* All elements of pname:pBuffers must: have been created with the
|
||||
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[]
|
||||
|
|
|
@ -550,6 +550,8 @@ before using the results.
|
|||
<<queries-operation-memorylayout,here>>
|
||||
* pname:dstBuffer must: have been created with
|
||||
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
|
||||
ename:VK_QUERY_TYPE_TIMESTAMP, pname:flags must: not contain
|
||||
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
|
||||
sname:VkFormatProperties::pname:bufferFeatures returned by
|
||||
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[]
|
||||
|
@ -432,10 +434,6 @@ include::../api/structs/VkImageCreateInfo.txt[]
|
|||
pname:initialLayout must: be ename:VK_IMAGE_LAYOUT_UNDEFINED or
|
||||
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
|
||||
further restrictions on their limits and capabilities compared to images
|
||||
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
|
||||
listed above.
|
||||
To determine the specific capabilities of an implementation, query the valid
|
||||
pname:usage bits by calling flink:vkGetPhysicalDeviceFormatProperties and
|
||||
the valid limits for pname:mipLevels and pname:arrayLayers by calling
|
||||
flink:vkGetPhysicalDeviceImageFormatProperties.
|
||||
|
||||
To query an implementation's specific capabilities for a given combination
|
||||
of pname:format, pname:type, pname:tiling, pname:usage, and pname:flags,
|
||||
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
|
||||
****
|
||||
* 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,
|
||||
pname:pQueueFamilyIndices must: be a pointer to an array of
|
||||
pname:queueFamilyIndexCount basetype:uint32_t values
|
||||
|
@ -1505,6 +1515,8 @@ pname:layerCount = 1
|
|||
* 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 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
|
||||
image, as described in the
|
||||
<<resources-image-views-compatibility,compatibility table>>
|
||||
|
|
|
@ -278,6 +278,10 @@ ifdef::VK_NVX_device_generated_commands[]
|
|||
endif::VK_NVX_device_generated_commands[]
|
||||
* ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT: Stage of the pipeline where
|
||||
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
|
||||
vertex and index buffers are consumed.
|
||||
* 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:
|
||||
|
||||
** 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_VERTEX_INPUT_BIT
|
||||
** ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
|
||||
|
@ -422,9 +423,6 @@ and <<devsandqueues-queues,Queues>>.
|
|||
|====
|
||||
|Pipeline stage flag | Required queue capability flag
|
||||
|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_VERTEX_INPUT_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_ALL_GRAPHICS_BIT | ename:VK_QUEUE_GRAPHICS_BIT
|
||||
|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]]
|
||||
|
@ -473,9 +474,6 @@ compute, transfer or host.
|
|||
For the graphics pipeline, the following stages occur in this order:
|
||||
|
||||
* 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_VERTEX_INPUT_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:
|
||||
|
||||
* 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_COMPUTE_SHADER_BIT
|
||||
* ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
|
||||
|
@ -509,6 +504,14 @@ guaranteed:
|
|||
|
||||
* 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]]
|
||||
=== Access Types
|
||||
|
@ -599,6 +602,12 @@ include::../api/enums/VkAccessFlagBits.txt[]
|
|||
When included in a destination access mask, makes all available writes
|
||||
visible to all future write accesses on entities known to the Vulkan
|
||||
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.
|
||||
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_MEMORY_READ_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
|
||||
#define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)</type> <!-- The patch version here should never be set to anything other than 0 -->
|
||||
<type category="define">// Version of this file
|
||||
#define <name>VK_HEADER_VERSION</name> 36</type>
|
||||
#define <name>VK_HEADER_VERSION</name> 37</type>
|
||||
|
||||
<type category="define">
|
||||
#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><type>VkIndirectCommandsLayoutNVX</type> <name>indirectCommandsLayout</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 optional="true" externsync="true"><type>VkCommandBuffer</type> <name>targetCommandBuffer</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="27" name="VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_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 name="VkDebugReportErrorEXT" type="enum">
|
||||
<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 name="VK_EXT_debug_report" number="12" type="instance" author="Google, Inc." contact="Courtney Goeltzenleuchter @courtney" supported="vulkan">
|
||||
<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 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"/>
|
||||
|
@ -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="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="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="VkIndirectCommandsLayoutNVX"/>
|
||||
<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"/>
|
||||
</require>
|
||||
</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>
|
||||
</registry>
|
||||
|
|
|
@ -43,7 +43,7 @@ extern "C" {
|
|||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 36
|
||||
#define VK_HEADER_VERSION 37
|
||||
|
||||
|
||||
#define VK_NULL_HANDLE 0
|
||||
|
@ -1099,6 +1099,8 @@ typedef enum VkAccessFlagBits {
|
|||
VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
|
||||
VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
|
||||
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
|
||||
} VkAccessFlagBits;
|
||||
typedef VkFlags VkAccessFlags;
|
||||
|
@ -3742,7 +3744,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
|
|||
#define VK_EXT_debug_report 1
|
||||
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_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_SWAPCHAIN_KHR_EXT = 27,
|
||||
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_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_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_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||
} VkDebugReportObjectTypeEXT;
|
||||
|
||||
|
|
Loading…
Reference in New Issue