Change log for August 19, 2017 Vulkan 1.0.59 spec update:

* Bump API patch number and header version number to 59 for this update.

Github Issues:

  * Fix a few missing Implicit Valid Usage statements to indicate that a
    common parent of two objects is required (public issue 497).
  * Clarify render pass synchronization language for
    slink:VkSubpassDependency and \<\<renderpass,render passes>> (public
    issue 531).
  * Rename ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT to
    ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT for consistency, and
    add an alias for backwards compatibility (public issue 539).

Internal Issues:

  * Add an explanation to the \<\<interfaces-builtin-variables-layer,
    code:Layer>> description explaining that writing to invalid layers
    results may or may not result in primitives being processed and fragment
    shaders being run, and gives undefined results in the framebuffer
    (internal issue 614)
  * Add valid usage statement for slink:VkDescriptorSetLayoutBinding
    requiring that input attachment descriptor bindings must not use
    non-fragment stages (internal issue 933).

Other Issues:

  * Makes description of pname:loadOp and pname:storeOp easier to read in
    the \<\<renderpass-load-store-ops>> section.

New Extensions:

  * `VK_EXT_shader_stencil_export`
This commit is contained in:
Jon Leech 2017-08-20 01:06:59 -07:00
parent cd4de492bf
commit bbb637d6db
19 changed files with 218 additions and 34 deletions

View File

@ -8,6 +8,43 @@ public issues.
-----------------------------------------------------
Change log for August 19, 2017 Vulkan 1.0.59 spec update:
* Bump API patch number and header version number to 59 for this update.
Github Issues:
* Fix a few missing Implicit Valid Usage statements to indicate that a
common parent of two objects is required (public issue 497).
* Clarify render pass synchronization language for
slink:VkSubpassDependency and \<\<renderpass,render passes>> (public
issue 531).
* Rename ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT to
ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT for consistency, and
add an alias for backwards compatibility (public issue 539).
Internal Issues:
* Add an explanation to the \<\<interfaces-builtin-variables-layer,
code:Layer>> description explaining that writing to invalid layers
results may or may not result in primitives being processed and fragment
shaders being run, and gives undefined results in the framebuffer
(internal issue 614)
* Add valid usage statement for slink:VkDescriptorSetLayoutBinding
requiring that input attachment descriptor bindings must not use
non-fragment stages (internal issue 933).
Other Issues:
* Makes description of pname:loadOp and pname:storeOp easier to read in
the \<\<renderpass-load-store-ops>> section.
New Extensions:
* `VK_EXT_shader_stencil_export`
-----------------------------------------------------
Change log for August 14, 2017 Vulkan 1.0.58 spec update:
* Bump API patch number and header version number to 58 for this update.

View File

@ -87,7 +87,7 @@ VERBOSE =
# $(EXTENSIONS))
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
SPECREVISION = 1.0.58
SPECREVISION = 1.0.59
# Spell out RFC2822 format as not all date commands support -R
SPECDATE = $(shell echo `date -u "+%a, %d %b %Y %T %z"`)

View File

@ -33,7 +33,7 @@ slink:VkSurfaceKHR object.
=== New Enum Constants
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT
** ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
=== New Enums

View File

@ -0,0 +1,36 @@
[[VK_EXT_shader_stencil_export]]
== VK_EXT_shader_stencil_export
*Name String*::
+VK_EXT_shader_stencil_export+
*Extension Type*::
Device extension
*Registered Extension Number*::
141
*Last Modified Date*::
07/19/2017
*Revision*::
1
*IP Status*::
No known IP claims.
*Dependencies*::
- This extension is written against version 1.0 of the Vulkan API.
- Requires the +SPV_EXT_shader_stencil_export+ SPIR-V extension.
*Contributors*::
- Dominik Witczak, AMD
- Daniel Rakos, AMD
- Rex Xu, AMD
*Contacts*::
- Dominik Witczak, AMD (dominik.witczak@amd.com)
*Overview*::
This extension adds support for the SPIR-V extension
+SPV_EXT_shader_stencil_export+ providing a mechanism whereby a shader may
generate the stencil reference value per invocation.
When stencil testing is enabled, this allows the test to be performed
against the value generated in the shader.
=== Version History
* Revision 1, 2017-07-19 (Dominik Witczak)
- Initial draft

View File

@ -280,6 +280,10 @@ ifdef::VK_EXT_sampler_filter_minmax[]
include::VK_EXT_sampler_filter_minmax.txt[]
endif::VK_EXT_sampler_filter_minmax[]
ifdef::VK_EXT_shader_stencil_export[]
include::VK_EXT_shader_stencil_export.txt[]
endif::VK_EXT_shader_stencil_export[]
ifdef::VK_EXT_shader_subgroup_ballot[]
include::VK_EXT_shader_subgroup_ballot.txt[]
endif::VK_EXT_shader_subgroup_ballot[]

View File

@ -86,6 +86,10 @@ ifdef::VK_KHR_variable_pointers[]
| code:VariablePointersStorageBuffer | <<features-features-variablePointersStorageBuffer,variablePointersStorageBuffer>>
| code:VariablePointers | <<features-features-variablePointers,variablePointers>>
endif::VK_KHR_variable_pointers[]
ifdef::VK_EXT_shader_stencil_export[]
[[spirvenv-capabilities-table-shaderstencilexportext]]
| code:StencilExportEXT | <<VK_EXT_shader_stencil_export,VK_EXT_shader_stencil_export>>
endif::VK_EXT_shader_stencil_export[]
ifdef::VK_EXT_shader_subgroup_ballot[]
[[spirvenv-capabilities-table-subgroupballot]]
| code:SubgroupBallotKHR | <<VK_EXT_shader_subgroup_ballot,VK_EXT_shader_subgroup_ballot>>
@ -204,6 +208,11 @@ The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
uses the +SPV_KHR_post_depth_coverage+ SPIR-V extension.
endif::VK_EXT_post_depth_coverage[]
ifdef::VK_EXT_shader_stencil_export[]
The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
uses the +SPV_EXT_shader_stencil_export+ SPIR-V extension.
endif::VK_EXT_shader_stencil_export[]
ifdef::VK_EXT_shader_subgroup_ballot[]
The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
uses the +SPV_KHR_shader_ballot+ SPIR-V extension.

View File

@ -687,7 +687,8 @@ include::../api/structs/VkDescriptorSetLayoutBinding.txt[]
If a shader stage is not included in pname:stageFlags, then a resource must:
not be accessed from that stage via this binding within any pipeline using
the set layout.
There are no limitations on what combinations of stages can: be used by a
Other than input attachments which are limited to the fragment shader, there
are no limitations on what combinations of stages can: be used by a
descriptor binding, and in particular a binding can: be used by both
graphics stages and the compute stage.
@ -738,6 +739,10 @@ avoid wasted memory.
* [[VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283]]
If pname:descriptorCount is not `0`, pname:stageFlags must: be a valid
combination of elink:VkShaderStageFlagBits values
* [[VUID-VkDescriptorSetLayoutBinding-descriptorType-01510]]
If pname:descriptorType is ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and
pname:descriptorCount is not `0`, then pname:stageFlags must: be `0` or
ename:VK_SHADER_STAGE_FRAGMENT_BIT
****
include::../validity/structs/VkDescriptorSetLayoutBinding.txt[]

View File

@ -736,8 +736,10 @@ include::../validity/protos/vkCmdSetStencilReference.txt[]
pname:reference is an integer reference value that is used in the unsigned
stencil comparison.
Stencil comparison clamps the reference value to [eq]#[0,2^s^-1]#, where
[eq]#s# is the number of bits in the stencil framebuffer attachment.
The reference value used by stencil comparison must be within the range
[eq]#[0,2^s^-1]# , where [eq]#s# is the number of bits in the stencil
framebuffer attachment, otherwise the reference value is considered
undefined.
The [eq]#s# least significant bits of pname:compareMask are bitwise
code:ANDed with both the reference and the stored stencil value, and the
resulting masked values are those that participate in the comparison

View File

@ -1141,6 +1141,38 @@ code:Output storage class.
The variable decorated with code:FragDepth must: be declared as a scalar
32-bit floating-point value.
ifdef::VK_EXT_shader_stencil_export[]
code:FragStencilRefEXT::
Decorating a variable with the code:FragStencilRefEXT built-in decoration
will make that variable contain the stencil reference value for all samples
covered by the fragment.
This value will be used as the stencil reference value used in stencil
testing.
+
To write to code:FragStencilRefEXT, a shader must: declare the
code:StencilRefReplacingEXT execution mode.
If a shader declares the code:StencilRefReplacingEXT execution mode and
there is an execution path through the shader that does not set
code:FragStencilRefEXT, then the fragment's stencil reference value is
undefined for executions of the shader that take that path.
+
The code:FragStencilRefEXT decoration must: be used only within fragment
shaders.
+
The variable decorated with code:FragStencilRefEXT must: be declared using
the code:Output storage class.
+
The variable decorated with code:FragStencilRefEXT must: be declared as a
scalar integer value.
Only the least significant [eq]#s# bits of the integer value of the variable
decorated with code:FragStencilRefEXT are considered for stencil testing,
where [eq]#s# is the number of bits in the stencil framebuffer attachment,
and higher order bits are discarded.
endif::VK_EXT_shader_stencil_export[]
code:FrontFacing::
Decorating a variable with the code:FrontFacing built-in decoration will
@ -1267,6 +1299,10 @@ is used.
If a vertex processing stage shader entry point's interface includes a
variable decorated with code:Layer, it must: write the same value to
code:Layer for all output vertices of a given primitive.
If the code:Layer value is less than 0 or greater than or equal to the
number of layers in the framebuffer, then primitives may: still be
rasterized, fragment shaders may: be executed, and the framebuffer values
for all layers are undefined.
+
The code:Layer decoration must: be used only within
ifdef::VK_NV_viewport_array2,VK_EXT_shader_viewport_index_layer[]

View File

@ -315,6 +315,12 @@ include::../api/structs/VkPipelineShaderStageCreateInfo.txt[]
If pname:stage is ename:VK_SHADER_STAGE_FRAGMENT_BIT, and the identified
entry point writes to code:FragDepth in any execution path, it must:
write to code:FragDepth in all execution paths
ifdef::VK_EXT_shader_stencil_export[]
* [[VUID-VkPipelineShaderStageCreateInfo-stage-01511]]
If pname:stage is ename:VK_SHADER_STAGE_FRAGMENT_BIT, and the identified
entry point writes to code:FragStencilRefEXT in any execution path, it
must: write to code:FragStencilRefEXT in all execution paths
endif::VK_EXT_shader_stencil_export[]
****
include::../validity/structs/VkPipelineShaderStageCreateInfo.txt[]

View File

@ -405,15 +405,17 @@ execute as part of the first subpass that uses the attachment.
pname:storeOp and pname:stencilStoreOp define the _store operations_ that
execute as part of the last subpass that uses the attachment.
The load operation for each value in an attachment used by a subpass
happens-before any command recorded into that subpass reads from that value.
The load operation for each sample in an attachment happens-before any
recorded command which accesses the sample in the first subpass where the
attachment is used.
Load operations for attachments with a depth/stencil format execute in the
ename:VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT pipeline stage.
Load operations for attachments with a color format execute in the
ename:VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT pipeline stage.
Store operations for each value in an attachment used by a subpass
happen-after any command recorded into that subpass writes to that value.
The store operation for each sample in an attachment happens-after any
recorded command which accesses the sample in the last subpass where the
attachment is used.
Store operations for attachments with a depth/stencil format execute in the
ename:VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT pipeline stage.
Store operations for attachments with a color format execute in the
@ -875,6 +877,28 @@ visibility operations>> defined by a subpass dependency affect the execution
of <<renderpass-layout-transitions, image layout transitions>> within the
render pass.
.Note
[NOTE]
====
For non-attachment resources, the memory dependency expressed by subpass
dependency is nearly identical to that of a slink:VkMemoryBarrier (with
matching pname:srcAccessMask/pname:dstAccessMask parameters) submitted as a
part of a flink:vkCmdPipelineBarrier (with matching
pname:srcStageMask/pname:dstStageMask parameters).
The only difference being that its scopes are limited to the identified
subpasses rather than potentially affecting everything before and after.
For attachments however, subpass dependencies work more like an
slink:VkImageMemoryBarrier defined similarly to the slink:VkMemoryBarrier
above, the queue family indices set to ename:VK_QUEUE_FAMILY_IGNORED, and
layouts as follows:
* The equivalent to pname:oldLayout is the attachment's layout according
to the subpass description for pname:srcSubpass.
* The equivalent to pname:newLayout is the attachment's layout according
to the subpass description for pname:dstSubpass.
====
.Valid Usage
****
* [[VUID-VkSubpassDependency-srcSubpass-00858]]

View File

@ -14,8 +14,8 @@ Memory caches and other optimizations are also explicitly managed, requiring
that the flow of data through the system is largely under application
control.
Whilst some implicit guarantees exist between commands, four explicit
synchronization primitives are exposed by Vulkan:
Whilst some implicit guarantees exist between commands, five explicit
synchronization mechanisms are exposed by Vulkan:
<<synchronization-fences,Fences>>::
Fences can: be used to communicate to the host that execution of some
@ -35,12 +35,12 @@ synchronization primitives are exposed by Vulkan:
buffer, but at a single point, rather than with separate signal and wait
operations.
In addition to the base primitives provided here, <<renderpass, Render
Passes>> provide a useful synchronization framework for most rendering
tasks, built upon the concepts in this chapter.
Many cases that would otherwise need an application to use synchronization
primitives in this chapter can: be expressed more efficiently as part of a
render pass.
<<renderpass,Render Passes>>::
Render passes provide a useful synchronization framework for most
rendering tasks, built upon the concepts in this chapter.
Many cases that would otherwise need an application to use other
synchronization primitives can: be expressed more efficiently as part of
a render pass.
[[synchronization-dependencies]]

View File

@ -51,6 +51,6 @@ extensions['VK_NV_external_memory_win32'] = [ 'VK_NV_external_memory', 'VK_NV_ex
extensions['VK_NV_win32_keyed_mutex'] = [ 'VK_NV_external_memory', 'VK_NV_external_memory_capabilities', 'VK_NV_external_memory_win32' ]
# Define lists of all / KHR / KHX extensions
allExts = [ 'VK_AMD_draw_indirect_count', 'VK_AMD_gcn_shader', 'VK_AMD_gpu_shader_half_float', 'VK_AMD_gpu_shader_int16', 'VK_AMD_mixed_attachment_samples', 'VK_AMD_negative_viewport_height', 'VK_AMD_rasterization_order', 'VK_AMD_shader_ballot', 'VK_AMD_shader_explicit_vertex_parameter', 'VK_AMD_shader_trinary_minmax', 'VK_AMD_texture_gather_bias_lod', 'VK_EXT_acquire_xlib_display', 'VK_EXT_blend_operation_advanced', 'VK_EXT_debug_marker', 'VK_EXT_debug_report', 'VK_EXT_depth_range_unrestricted', 'VK_EXT_direct_mode_display', 'VK_EXT_discard_rectangles', 'VK_EXT_display_control', 'VK_EXT_display_surface_counter', 'VK_EXT_hdr_metadata', 'VK_EXT_post_depth_coverage', 'VK_EXT_sampler_filter_minmax', 'VK_EXT_shader_subgroup_ballot', 'VK_EXT_shader_subgroup_vote', 'VK_EXT_shader_viewport_index_layer', 'VK_EXT_swapchain_colorspace', 'VK_EXT_validation_flags', 'VK_GOOGLE_display_timing', 'VK_IMG_filter_cubic', 'VK_IMG_format_pvrtc', 'VK_KHR_16bit_storage', 'VK_KHR_android_surface', 'VK_KHR_dedicated_allocation', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_external_fence', 'VK_KHR_external_fence_capabilities', 'VK_KHR_external_fence_fd', 'VK_KHR_external_fence_win32', 'VK_KHR_external_memory', 'VK_KHR_external_memory_capabilities', 'VK_KHR_external_memory_fd', 'VK_KHR_external_memory_win32', 'VK_KHR_external_semaphore', 'VK_KHR_external_semaphore_capabilities', 'VK_KHR_external_semaphore_fd', 'VK_KHR_external_semaphore_win32', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_surface_capabilities2', 'VK_KHR_incremental_present', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_relaxed_block_layout', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_shared_presentable_image', 'VK_KHR_storage_buffer_storage_class', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_variable_pointers', 'VK_KHR_wayland_surface', 'VK_KHR_win32_keyed_mutex', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface', 'VK_KHX_device_group', 'VK_KHX_device_group_creation', 'VK_KHX_multiview', 'VK_MVK_ios_surface', 'VK_MVK_macos_surface', 'VK_NN_vi_surface', 'VK_NVX_device_generated_commands', 'VK_NVX_multiview_per_view_attributes', 'VK_NV_clip_space_w_scaling', 'VK_NV_dedicated_allocation', 'VK_NV_external_memory', 'VK_NV_external_memory_capabilities', 'VK_NV_external_memory_win32', 'VK_NV_fill_rectangle', 'VK_NV_fragment_coverage_to_color', 'VK_NV_framebuffer_mixed_samples', 'VK_NV_geometry_shader_passthrough', 'VK_NV_glsl_shader', 'VK_NV_sample_mask_override_coverage', 'VK_NV_viewport_array2', 'VK_NV_viewport_swizzle', 'VK_NV_win32_keyed_mutex' ]
allExts = [ 'VK_AMD_draw_indirect_count', 'VK_AMD_gcn_shader', 'VK_AMD_gpu_shader_half_float', 'VK_AMD_gpu_shader_int16', 'VK_AMD_mixed_attachment_samples', 'VK_AMD_negative_viewport_height', 'VK_AMD_rasterization_order', 'VK_AMD_shader_ballot', 'VK_AMD_shader_explicit_vertex_parameter', 'VK_AMD_shader_trinary_minmax', 'VK_AMD_texture_gather_bias_lod', 'VK_EXT_acquire_xlib_display', 'VK_EXT_blend_operation_advanced', 'VK_EXT_debug_marker', 'VK_EXT_debug_report', 'VK_EXT_depth_range_unrestricted', 'VK_EXT_direct_mode_display', 'VK_EXT_discard_rectangles', 'VK_EXT_display_control', 'VK_EXT_display_surface_counter', 'VK_EXT_hdr_metadata', 'VK_EXT_post_depth_coverage', 'VK_EXT_sampler_filter_minmax', 'VK_EXT_shader_stencil_export', 'VK_EXT_shader_subgroup_ballot', 'VK_EXT_shader_subgroup_vote', 'VK_EXT_shader_viewport_index_layer', 'VK_EXT_swapchain_colorspace', 'VK_EXT_validation_flags', 'VK_GOOGLE_display_timing', 'VK_IMG_filter_cubic', 'VK_IMG_format_pvrtc', 'VK_KHR_16bit_storage', 'VK_KHR_android_surface', 'VK_KHR_dedicated_allocation', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_external_fence', 'VK_KHR_external_fence_capabilities', 'VK_KHR_external_fence_fd', 'VK_KHR_external_fence_win32', 'VK_KHR_external_memory', 'VK_KHR_external_memory_capabilities', 'VK_KHR_external_memory_fd', 'VK_KHR_external_memory_win32', 'VK_KHR_external_semaphore', 'VK_KHR_external_semaphore_capabilities', 'VK_KHR_external_semaphore_fd', 'VK_KHR_external_semaphore_win32', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_surface_capabilities2', 'VK_KHR_incremental_present', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_relaxed_block_layout', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_shared_presentable_image', 'VK_KHR_storage_buffer_storage_class', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_variable_pointers', 'VK_KHR_wayland_surface', 'VK_KHR_win32_keyed_mutex', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface', 'VK_KHX_device_group', 'VK_KHX_device_group_creation', 'VK_KHX_multiview', 'VK_MVK_ios_surface', 'VK_MVK_macos_surface', 'VK_NN_vi_surface', 'VK_NVX_device_generated_commands', 'VK_NVX_multiview_per_view_attributes', 'VK_NV_clip_space_w_scaling', 'VK_NV_dedicated_allocation', 'VK_NV_external_memory', 'VK_NV_external_memory_capabilities', 'VK_NV_external_memory_win32', 'VK_NV_fill_rectangle', 'VK_NV_fragment_coverage_to_color', 'VK_NV_framebuffer_mixed_samples', 'VK_NV_geometry_shader_passthrough', 'VK_NV_glsl_shader', 'VK_NV_sample_mask_override_coverage', 'VK_NV_viewport_array2', 'VK_NV_viewport_swizzle', 'VK_NV_win32_keyed_mutex' ]
khrExts = [ 'VK_KHR_16bit_storage', 'VK_KHR_android_surface', 'VK_KHR_dedicated_allocation', 'VK_KHR_descriptor_update_template', 'VK_KHR_display', 'VK_KHR_display_swapchain', 'VK_KHR_external_fence', 'VK_KHR_external_fence_capabilities', 'VK_KHR_external_fence_fd', 'VK_KHR_external_fence_win32', 'VK_KHR_external_memory', 'VK_KHR_external_memory_capabilities', 'VK_KHR_external_memory_fd', 'VK_KHR_external_memory_win32', 'VK_KHR_external_semaphore', 'VK_KHR_external_semaphore_capabilities', 'VK_KHR_external_semaphore_fd', 'VK_KHR_external_semaphore_win32', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_surface_capabilities2', 'VK_KHR_incremental_present', 'VK_KHR_maintenance1', 'VK_KHR_mir_surface', 'VK_KHR_push_descriptor', 'VK_KHR_relaxed_block_layout', 'VK_KHR_sampler_mirror_clamp_to_edge', 'VK_KHR_shader_draw_parameters', 'VK_KHR_shared_presentable_image', 'VK_KHR_storage_buffer_storage_class', 'VK_KHR_surface', 'VK_KHR_swapchain', 'VK_KHR_variable_pointers', 'VK_KHR_wayland_surface', 'VK_KHR_win32_keyed_mutex', 'VK_KHR_win32_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface' ]
khxExts = [ 'VK_KHX_device_group', 'VK_KHX_device_group_creation', 'VK_KHX_multiview' ]

View File

@ -51,6 +51,6 @@ extensions[VK_NV_external_memory_win32]="VK_NV_external_memory VK_NV_external_me
extensions[VK_NV_win32_keyed_mutex]="VK_NV_external_memory VK_NV_external_memory_capabilities VK_NV_external_memory_win32"
# Define lists of all / KHR / KHX extensions
allExts="VK_AMD_draw_indirect_count VK_AMD_gcn_shader VK_AMD_gpu_shader_half_float VK_AMD_gpu_shader_int16 VK_AMD_mixed_attachment_samples VK_AMD_negative_viewport_height VK_AMD_rasterization_order VK_AMD_shader_ballot VK_AMD_shader_explicit_vertex_parameter VK_AMD_shader_trinary_minmax VK_AMD_texture_gather_bias_lod VK_EXT_acquire_xlib_display VK_EXT_blend_operation_advanced VK_EXT_debug_marker VK_EXT_debug_report VK_EXT_depth_range_unrestricted VK_EXT_direct_mode_display VK_EXT_discard_rectangles VK_EXT_display_control VK_EXT_display_surface_counter VK_EXT_hdr_metadata VK_EXT_post_depth_coverage VK_EXT_sampler_filter_minmax VK_EXT_shader_subgroup_ballot VK_EXT_shader_subgroup_vote VK_EXT_shader_viewport_index_layer VK_EXT_swapchain_colorspace VK_EXT_validation_flags VK_GOOGLE_display_timing VK_IMG_filter_cubic VK_IMG_format_pvrtc VK_KHR_16bit_storage VK_KHR_android_surface VK_KHR_dedicated_allocation VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_external_fence VK_KHR_external_fence_capabilities VK_KHR_external_fence_fd VK_KHR_external_fence_win32 VK_KHR_external_memory VK_KHR_external_memory_capabilities VK_KHR_external_memory_fd VK_KHR_external_memory_win32 VK_KHR_external_semaphore VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_fd VK_KHR_external_semaphore_win32 VK_KHR_get_memory_requirements2 VK_KHR_get_physical_device_properties2 VK_KHR_get_surface_capabilities2 VK_KHR_incremental_present VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_relaxed_block_layout VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_shared_presentable_image VK_KHR_storage_buffer_storage_class VK_KHR_surface VK_KHR_swapchain VK_KHR_variable_pointers VK_KHR_wayland_surface VK_KHR_win32_keyed_mutex VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface VK_KHX_device_group VK_KHX_device_group_creation VK_KHX_multiview VK_MVK_ios_surface VK_MVK_macos_surface VK_NN_vi_surface VK_NVX_device_generated_commands VK_NVX_multiview_per_view_attributes VK_NV_clip_space_w_scaling VK_NV_dedicated_allocation VK_NV_external_memory VK_NV_external_memory_capabilities VK_NV_external_memory_win32 VK_NV_fill_rectangle VK_NV_fragment_coverage_to_color VK_NV_framebuffer_mixed_samples VK_NV_geometry_shader_passthrough VK_NV_glsl_shader VK_NV_sample_mask_override_coverage VK_NV_viewport_array2 VK_NV_viewport_swizzle VK_NV_win32_keyed_mutex"
allExts="VK_AMD_draw_indirect_count VK_AMD_gcn_shader VK_AMD_gpu_shader_half_float VK_AMD_gpu_shader_int16 VK_AMD_mixed_attachment_samples VK_AMD_negative_viewport_height VK_AMD_rasterization_order VK_AMD_shader_ballot VK_AMD_shader_explicit_vertex_parameter VK_AMD_shader_trinary_minmax VK_AMD_texture_gather_bias_lod VK_EXT_acquire_xlib_display VK_EXT_blend_operation_advanced VK_EXT_debug_marker VK_EXT_debug_report VK_EXT_depth_range_unrestricted VK_EXT_direct_mode_display VK_EXT_discard_rectangles VK_EXT_display_control VK_EXT_display_surface_counter VK_EXT_hdr_metadata VK_EXT_post_depth_coverage VK_EXT_sampler_filter_minmax VK_EXT_shader_stencil_export VK_EXT_shader_subgroup_ballot VK_EXT_shader_subgroup_vote VK_EXT_shader_viewport_index_layer VK_EXT_swapchain_colorspace VK_EXT_validation_flags VK_GOOGLE_display_timing VK_IMG_filter_cubic VK_IMG_format_pvrtc VK_KHR_16bit_storage VK_KHR_android_surface VK_KHR_dedicated_allocation VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_external_fence VK_KHR_external_fence_capabilities VK_KHR_external_fence_fd VK_KHR_external_fence_win32 VK_KHR_external_memory VK_KHR_external_memory_capabilities VK_KHR_external_memory_fd VK_KHR_external_memory_win32 VK_KHR_external_semaphore VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_fd VK_KHR_external_semaphore_win32 VK_KHR_get_memory_requirements2 VK_KHR_get_physical_device_properties2 VK_KHR_get_surface_capabilities2 VK_KHR_incremental_present VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_relaxed_block_layout VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_shared_presentable_image VK_KHR_storage_buffer_storage_class VK_KHR_surface VK_KHR_swapchain VK_KHR_variable_pointers VK_KHR_wayland_surface VK_KHR_win32_keyed_mutex VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface VK_KHX_device_group VK_KHX_device_group_creation VK_KHX_multiview VK_MVK_ios_surface VK_MVK_macos_surface VK_NN_vi_surface VK_NVX_device_generated_commands VK_NVX_multiview_per_view_attributes VK_NV_clip_space_w_scaling VK_NV_dedicated_allocation VK_NV_external_memory VK_NV_external_memory_capabilities VK_NV_external_memory_win32 VK_NV_fill_rectangle VK_NV_fragment_coverage_to_color VK_NV_framebuffer_mixed_samples VK_NV_geometry_shader_passthrough VK_NV_glsl_shader VK_NV_sample_mask_override_coverage VK_NV_viewport_array2 VK_NV_viewport_swizzle VK_NV_win32_keyed_mutex"
khrExts="VK_KHR_16bit_storage VK_KHR_android_surface VK_KHR_dedicated_allocation VK_KHR_descriptor_update_template VK_KHR_display VK_KHR_display_swapchain VK_KHR_external_fence VK_KHR_external_fence_capabilities VK_KHR_external_fence_fd VK_KHR_external_fence_win32 VK_KHR_external_memory VK_KHR_external_memory_capabilities VK_KHR_external_memory_fd VK_KHR_external_memory_win32 VK_KHR_external_semaphore VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore_fd VK_KHR_external_semaphore_win32 VK_KHR_get_memory_requirements2 VK_KHR_get_physical_device_properties2 VK_KHR_get_surface_capabilities2 VK_KHR_incremental_present VK_KHR_maintenance1 VK_KHR_mir_surface VK_KHR_push_descriptor VK_KHR_relaxed_block_layout VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_shader_draw_parameters VK_KHR_shared_presentable_image VK_KHR_storage_buffer_storage_class VK_KHR_surface VK_KHR_swapchain VK_KHR_variable_pointers VK_KHR_wayland_surface VK_KHR_win32_keyed_mutex VK_KHR_win32_surface VK_KHR_xcb_surface VK_KHR_xlib_surface"
khxExts="VK_KHX_device_group VK_KHX_device_group_creation VK_KHX_multiview"

View File

@ -580,7 +580,7 @@ global vuPat
vuPat = re.compile('^(?P<head> [*]+)( *)(?P<tail>.*)', re.DOTALL)
# The value to start tagging VU statements at, unless overridden by -nextvu
startVUID = 1510
startVUID = 1512
if __name__ == '__main__':
parser = argparse.ArgumentParser()

View File

@ -30,6 +30,23 @@ respectively.
Whenever an abbreviation exists for a particular word, it should be used in
place of the full word unless there is good reason not to.
When a number is part of an identifier, it is treated as a word if it is a
standalone number, such as the extension name token
ename:VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME for the
+VK_KHR_get_memory_requirements2+ extension.
For uses where the number is part of a common abbreviation such as etext:2D
or etext:R8B8`, the entire abbreviation is treated as a word.
ifdef::editing-notes[]
[NOTE]
.editing-note
====
Unfortunately, there's an internal inconsistency here between extension name
strings, such as VK_KHR_get_memory_requirements2, and tokens encoding those
names, such as ename:VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME.
====
endif::editing-notes[]
[[naming-preprocessor]]
== Preprocessor Defines
@ -242,7 +259,7 @@ There are three exceptions to the above rule in the core Vulkan API:
* vkDeviceWaitIdle
* vkCmdNextSubpass
* vkCmdPipelineBarrier
These names are left as-is to maintain compatibility.
There are additionally a number of exceptions in a few existing extensions.
@ -322,7 +339,7 @@ verbs at the time of writing.
| Present | Presents an image to a surface
| Push | Pushes data to the device as part of a command stream
| Release | Releases ownership of an object to an external source
| Reset | Resets the state of an object to an initial state
| Reset | Resets the state of an object to an initial state
| Resolve | Resolves multiple samples in a multisampled image to an image with one sample per pixel
| Set | Sets the state of an object
| Submit | Submits a set of commands to a queue

View File

@ -576,11 +576,12 @@ class ValidityOutputGenerator(OutputGenerator):
paramname = param.find('name')
paramtype = param.find('type')
ancestors = self.getHandleDispatchableAncestors(paramtype.text)
if not self.paramIsPointer(param) or (param.text is not None and 'const' in param.text):
ancestors = self.getHandleDispatchableAncestors(paramtype.text)
ancestormap[param] = ancestors
ancestormap[param] = ancestors
anyoptional |= self.isHandleOptional(param, params)
anyoptional |= self.isHandleOptional(param, params)
# Remove redundant ancestor lists
for param in handles:
@ -603,7 +604,7 @@ class ValidityOutputGenerator(OutputGenerator):
for ancestors in list(ancestormap.values())[1:]:
current = [val for val in current if val in ancestors]
if len(current) > 1:
if len(current) > 0:
commonancestor = current[0]
if len(ancestormap.keys()) > 1:

View File

@ -106,7 +106,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<type category="define">// Vulkan 1.0 version number
#define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)// Patch version should always be set to 0</type>
<type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 58</type>
#define <name>VK_HEADER_VERSION</name> 59</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -2101,7 +2101,7 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<member len="correlationMaskCount">const <type>uint32_t</type>* <name>pCorrelationMasks</name></member>
</type>
<type category="struct" name="VkSurfaceCapabilities2EXT" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member values="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>minImageCount</name><comment>Supported minimum number of images for the surface</comment></member>
<member><type>uint32_t</type> <name>maxImageCount</name><comment>Supported maximum number of images for the surface, 0 for unlimited</comment></member>
@ -6294,7 +6294,8 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<require>
<enum value="1" name="VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_display_surface_counter&quot;" name="VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"/>
<enum value="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT"/>
<type name="VkSurfaceCounterFlagsEXT"/>
<type name="VkSurfaceCounterFlagBitsEXT"/>
<type name="VkSurfaceCapabilities2EXT"/>
@ -6715,10 +6716,10 @@ private version is maintained in the 1.0 branch of the member gitlab server.
<enum value="&quot;VK_AMD_extension_140&quot;" name="VK_AMD_EXTENSION_140_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_141" number="141" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
<extension name="VK_EXT_shader_stencil_export" number="141" type="device" author="EXT" contact="dominik.witczak@amd.com" supported="vulkan">
<require>
<enum value="0" name="VK_AMD_EXTENSION_141_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_141&quot;" name="VK_AMD_EXTENSION_141_EXTENSION_NAME"/>
<enum value="1" name="VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_shader_stencil_export&quot;" name="VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_AMD_extension_142" number="142" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">

View File

@ -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 58
#define VK_HEADER_VERSION 59
#define VK_NULL_HANDLE 0
@ -293,7 +293,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = 1000090000,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
@ -5938,6 +5938,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(
#define VK_EXT_display_surface_counter 1
#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
#define VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
typedef enum VkSurfaceCounterFlagBitsEXT {
@ -6342,6 +6343,11 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
#define VK_EXT_shader_stencil_export 1
#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
#define VK_EXT_blend_operation_advanced 1
#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"