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:
parent
cd4de492bf
commit
bbb637d6db
|
@ -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.
|
||||
|
|
|
@ -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"`)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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[]
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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[]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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[]
|
||||
|
|
|
@ -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[]
|
||||
|
|
|
@ -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]]
|
||||
|
|
|
@ -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]]
|
||||
|
|
|
@ -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' ]
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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=""VK_EXT_display_surface_counter"" 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=""VK_AMD_extension_140"" 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=""VK_AMD_extension_141"" name="VK_AMD_EXTENSION_141_EXTENSION_NAME"/>
|
||||
<enum value="1" name="VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_shader_stencil_export"" 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">
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue